java习题 输入两个正整数m和n,求其最大公约数和最小公倍数

时间:2021-11-13 21:10:09
public class Example6 {  
public static void main(String args[]){
gcdlcm a
=new gcdlcm();
System.out.println(
"兩數的最大公約數是:"+a.gcd(10, 16));
System.out.println(
"兩數的最小公倍數是:"+a.lcm(16, 10));
}
}
class gcdlcm{
int gcd(int m,int n){
if(m<n){ //這個判斷是爲了將大數放在前面
int temp=n;
n
=m;
m
=temp;
}
if(m%n==0){
return n;
}
else{
m
%=n;
return gcd(m,n);
//這裡也可以寫成gcd(n,m),就省掉了前面的判斷了,會快一點
}
}
int lcm(int m,int n){
int i=1;
if(m<n){ //這個判斷是爲了將大數放在前面
int temp=n;
n
=m;
m
=temp;
}
int lcm=m;
while(lcm%n!=0){
lcm
=m*i;
i
++;
}
return lcm;
}
}