先学下英语:
最大公约数GCM:greatest common measure
最小公倍数LCM:lowest common multiple
相减求公因数
public int getGCM(int m , int n){
while(m != n){
if(m > n){
m = m - n;
}
if(m < n){
n = n - m;
}
}
//System.out.println("最大公约数是:" + m);
return m;
}
欧几里德算法(递归)
public int getGCM(int m , int n){
if(m >= n){
if(m % n == 0){
return n;
}
return getGCM(n , m%n);
}else{
getGCM(n , m);
}
}
连续整数检测算法(从大数到小数找公约数,找到的第一个既是最大的一个)
public int getGCM(int m , int n){
if(m >= n){
if(m % n == 0){
return n;
}else{
int max = n;
for(; max > 0 ; max--){
if( m % max == 0 && n % max == 0){
return max;
}
}
}
return getGCM(n , m%n);
}else{
getGCM(n , m);
}
}