本帖最后由 初夜告白 于 2015-4-5 19:57 编辑
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
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;
}
}
|