求最大公约数(GCD)和最小公倍数(LCM)的几个方法

时间:2021-06-04 05:18:14
private static int LCM1(int m, int n) {
if(m>n)
return LCM1(n, m);
int i=0;
while(++i<m){
if(n*i%m==0)
return n*i;
}
return m*n;
}

private static int GCD2(int m, int n){
if(m>n)
return GCD2(n, m);
while(n%m!=0){
int temp = n%m;
n = m;
m = temp;
}
return m;
}

private static int GCD1(int m, int n) {
if(m>n)
return GCD1(n, m);
int i=0;
while(m/(++i)>0){
if(m%i==0 && n%(m/i)==0)
return m/i;
}
return 1;
}
还有就是当GCD已知的时候,用m*n除以GCD得到的结果就是LCM