求解最大公约数:
1、辗转相除法(欧几里得算法)
int gcd1(int a,int b){ //辗转相除法 (最大公约)
int v;
v=a%b;
if(v==0){
return b;
}
while(v!=0){
a=b;
b=v;
return gcd1(a,b);
}
}
2、更相减损法
int gcd2(int a,int b){ //更相减损(最大公约)
int v;
v=fabs(a-b);
if(v==0){
return b;
}
while(v!=0){
return gcd2(v,(a>b)?b:a);
}
}
求解最小公倍数:
a和b 的最小公倍数=a*b/gcd(a,b)