`
MarkYuan
  • 浏览: 1787 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Java代码

阅读更多
import java.util.Scanner;  
 
/**  
* 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。  
*   
* 用辗转相除法求两个数的最大公约数的步骤如下: 先用小的一个数除大的一个数,得第一个余数; 再用第一个余数除小的一个数,得第二个余数;  
* 又用第二个余数除第一个余数,得第三个余数;  
* 这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。  
* 最小公倍数为两个数相乘然后除以最大公约数  
*   
* @author sailor  
*   
*/  
public class Common_Divisor {  
 
    public static void main(String[] args) {  
        Scanner in=new Scanner(System.in);  
        System.out.println("请输入第一个数");  
        int a=in.nextInt();  
        System.out.println("请输入第二个数");  
        int b=in.nextInt();  
        System.out.println(a+"和"+b+"的最大公约数是"+getMaxCommon_Divisor(a, b));  
        System.out.println(a+"和"+b+"的最小公倍数是"+getMincommon_multiple(a, b));  
    }  
 
    // 求最大公约数  
    public static int getMaxCommon_Divisor(int a, int b) {  
        int max = Math.max(a, b);  
        int min = Math.min(a, b);  
        int mod = max % min;  
        if (mod == 0) {  
            return min;  
        } else {  
            return getMaxCommon_Divisor(mod, min);  
        }  
    }  
 
    // 求最大公约数  
    public static int getMincommon_multiple(int a, int b) {  
        return (a * b) / getMaxCommon_Divisor(a, b);  
    }  
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics