代码改变世界

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

2017-05-17 20:58  backyyan  阅读(4577)  评论(0编辑  收藏  举报
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;  
    }  
}