用辗转相除法,具体可以看: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,一个不使用初始化向量的简单类是随机数生成器算法的实现.