辗转相除法求最大公约数
又称欧几里得算法。
非递归实现:
int gcd(int a,int b){
int c=a%b;
while(c!=0){
a=b;
b=c;
c=a%b;
}
return b;
}
递归实现:
int gcd(int a,int b){
if(b==0){
return a;
}else{
return gcd(b,a%b);
}
}
利用最大公约数求最小公倍数:
int lcm(int a,int b){
return a*b/gcd(a,b);
}

浙公网安备 33010602011771号