当前位置:首页 > JAVA教程 >

java求最大公约数与最小公倍数

发布时间:2017-04-26 08:59:56 作者:佚名 阅读:(243)

public class Gongyueshu
{
    public static void main(String[] args)
    {
        //从控制台输入两个数据
        int m = Integer.parseInt(args[0]);
        int n = Integer.parseInt(args[1]);
        int y = 1 ;
        int b = 1;
        if (m > 0 && n >0)
        {
            //先判定这两个数是否为倍数关系,如果是则小数为最大公约数,大数为最小公倍数
            if (m % n == 0 || n % m  == 0)
            {
                if (m >= n)
                {
                    System.out.println("最大公约数为" + n);
                    System.out.println("最小公倍数为" + m);
                }
                else
                {
                    System.out.println("最大公约数为" + m);
                    System.out.println("最小公倍数为" + n);
                }
            }
            //从2开始循环寻找两数共同的因子,每找到一个即乘以公约数变量y与公倍数变量b
            //并把原来的两个数除以共同的因子,
            //并把i置为1(continue出来要执行for的结束语句i++,所以下一次循环i依然从2开始)下一次循环
            else
            {
                for (int i = 2; i <= m ; i ++ )
                {
                    if (m % i == 0 && n % i == 0)
                    {
                        y *= i;
                        b *= i;
                        m /= i;
                        n /= i;
                        i = 1;
                        continue;
 
                    }
                    else if(m == i && (m % i != 0 || n % i != 0))
                    {
                        b = b * m * n;
                        System.out.println("最大公约数为" + y);
                        System.out.println("最小公倍数为" + b);
 
                    }
 
                }
            }
        }
    else
    {
        System.out.println("输入错误");
    }
         
    }
}

欢迎分享转载→ java求最大公约数与最小公倍数

© 2015-2021 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们