最大公约数gcd与最小公倍数lcm
gcd 最大公约数
lcm 最小公倍数
最大公约数:辗转相除法
最小公倍数:a/gcd(a,b)*b ——先做除法,防止数据溢出,不写成:a * b / gcd(a,b)
递归实现
最大公约数
int gcd(int a,int b){
if(b==0)
return a;
return gcd(b,a%b);
}
最小公倍数
int lcm(int a,int b){
return a/gcd(a,b)*b;
}
一般实现
int gcd(int a,int b){
int r = 1;
while(r!=0){
r = a%b;
a = b;
b = r;
}
return a;
}