欧几里德算法

最大公约数(greatest common divisor,简写为gcd;或highest common factor,简写为hcf),指某几个整数共有因子中最大的一个。

 

最小公倍数(Least Common Multiple,缩写L.C.M.),lcm(m,n) = m * n / gcd(m,n)。有时,由于数字较大,m*n可能过界,所以最好写成 m / gcd(m,n) * n

辗转相除法:

int gcd(int m,int n) {
int temp;
while(n!=0) {
t=m%n;
m=n;
n=temp;
}
return m;
}
 
转转相除法(递归实现):
int gcd(int m,int n) {
int r;
while((r=m%n)!=0) {
return gcd(n,r);
         }
}
 
相减法:
int gcd(int x,int y) {
if(x>y) x=x-y;
else y=y-x;
return x;
}