用輾轉相除法,具體可以看:http://ke..com/view/255668.htm
我給你個示範:
#include <stdio.h>
#include <stdarg.h>
// 求2個數的最大公約數,輾轉相除法
int GCD(int lhs, int rhs)
{
return rhs % lhs ? GCD(rhs % lhs, lhs) : lhs;
}
// n個數的最大公約數
int NGCD(int n, ...)
{
va_list argPtr;
va_start(argPtr, n);
int gcd = va_arg(argPtr, int);
for(int i = 1; i < n; ++i)
gcd = GCD(gcd, va_arg(argPtr, int));
va_end(argPtr);
return gcd;
}
// n個數的積
int NProct(int n, ...)
{
int pdt = 1;
va_list argPtr;
va_start(argPtr, n);
for(int i = 0; i < n; ++i)
pdt *= va_arg(argPtr, int);
va_end(argPtr);
return pdt;
}
// n個數的最小公倍數
#define NLCM(n, ...) NProct(n, __VA_ARGS__) / NGCD(n, __VA_ARGS__)
int main()
{
printf("GCD of 3,6,9: %d\n", NGCD(3, 3, 6, 9));
printf("LCM of 3,6,9: %d\n", NLCM(3, 3, 6, 9));
return 0;
}
Ⅱ win-tc程序:編寫一個程序計算兩個正整數的最大公約數和最小公倍數。
void GetGCMAndLCM(int a, int b, int *iGCM, int *iLCM)
{
int iMin = a > b ? b : a;
int iMax = (a < b) ? b : a;
int i = 1;
int iMaxIndex = 0;
if (0 == iMax % iMin)
{
*iGCM = iMin;
*iLCM = iMax;
return;
}
iMaxIndex = iMin / 2;
*iGCM = 1;
for (i = 2; i < iMaxIndex; i++)
{
if (0 == iMin % i && 0 == iMax % i)
{
*iGCM = i;
}
}
*iLCM = iMin * iMax / *iGCM;
}
Ⅲ 什麼是 AES-GCM加密演算法
選自動就行,路由加密演算法就是防止別人暴力破解你無線路由密碼的,TKIP和AES各有優缺點,我就不復制粘貼了、
Ⅳ C++ 求 最大公約數和最小公倍數 的演算法,求鑒定是否正確或者有什麼不符合編程習慣的求指點。。。
其實也不需要你這樣寫的。 看一下我的代碼吧。
#include<iostream>
using namespace std;
int gcd(int a,int b){ //整數a,b的最大公約數
if(b==0) return a;
else return gcd(b,a%b);
}
int gcm(int a,int b){ //整數a,b的最小公倍數
return a*b/gcd(a,b);
}
int main( ){
int a,b;
cout<<"請輸入兩個正整數"<<endl;
cin>>a>>b;
cout<<"這兩個數的最大公約數是"<<gcd(a,b)<<endl;
cout<<" 這兩個數的最小公倍數是"<<gcm(a,b)<<endl;
return 0;
}
註:可以用下列是演算法求最大公約數。利用遞歸的思想,你可以自己試試,在此不再贅述。
最大公約數演算法:給兩個數,如果兩個數相等,最大公約數是其本身;如果不等,取兩個數相減的絕對值和兩個數中最小的數比較,相等則為最大公約,不等則繼續上面的演算法,直到相等。
希望對你有幫助。
Ⅳ AES演算法到底可以加密多長的數據
這里你存在一個誤區。秘鑰可以是128位,但是密文是128的倍數,不一定就是128啊
Ⅵ gcm是什麼單位表示的什麼意思是扭矩還是什麼
扭矩單位,克.厘米,大約等於0.98Nm
Ⅶ SSL 證書的演算法有哪些
根據密鑰類型不同將現代密碼技術分為兩類:對稱加密演算法(秘密鑰匙加密)和非對稱加密演算法(公開密鑰加密)。
對稱鑰匙加密系統是加密和解密均採用同一把秘密鑰匙,而且通信雙方都必須獲得這把鑰匙,並保持鑰匙的秘密。非對稱密鑰加密系統採用的加密鑰匙(公鑰)和解密鑰匙(私鑰)是不同的。
對稱加密演算法用來對敏感數據等信息進行加密,常用的演算法包括:
DES(Data Encryption Standard):數據加密標准,速度較快,適用於加密大量數據的場合。
3DES(Triple DES):是基於DES,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
AES(Advanced Encryption Standard):高級加密標准,是下一代的加密演算法標准,速度快,安全級別高;
常見的非對稱加密演算法如下:
RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的;
DSA(Digital Signature Algorithm):數字簽名演算法,是一種標準的 DSS(數字簽名標准);
ECC(Elliptic Curves Cryptography):橢圓曲線密碼編碼學。
Ⅷ 路由器上SS/SSR用什麼加密方式及協議混淆能達到最大的速度
加密方式推薦是因為AEAD本身有新的特性,另外主推薦aes-256-gcm是因為這個加密實測多數主流設備下都可以通過硬體加解密,減少系統性能資源的依賴。
混淆方式理論上tls是最佳,但目前以聯通上網記錄最直觀的結果來看,使用tls混淆會使混淆域名無效直接顯示代理伺服器IP,而http可以正常顯示混淆域名,至少看上去達到了偽裝的效果,故,目前而言,推薦使用http混淆。
(8)gcm演算法擴展閱讀:
注意事項:
1、路由器長期工作,其本身會不斷發熱,尤其是高溫環境下,其機身溫度會很高,因此用戶要加強路由器的散熱,否則路由器的使用壽命會縮短,同時也會因為內部散熱不佳的問題,導致網路不穩定,無法滿足用戶的應用需求。
2、路由器運行時間不間斷,其內部會堆積大量的灰塵。灰塵是設備運行的最大殺手,大量灰塵堆積在設備中,不僅會堵塞設備的散熱孔,同時也會給內部零件增加負荷,長時間會讓設備死機。這里建議大家,使用路由器一定要定期清理灰塵。
3、路由器屬於無休止的工作設備,長期運行會出現問題。為了避免路由器罷工,用戶最好隔一段時間關閉路由器,讓路由器休息一會。
Ⅸ AES GCM加密模式的初始向量IV怎麼確定
(IV) 對數據執行加密轉換.對於給定的私鑰 k,一個不使用初始化向量的簡單類是隨機數生成器演算法的實現.