Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java程序查找两个数字的最小公倍数

Java 实例大全

在该程序中,您将学习使用Java程序查找两个数字的最小公倍数。这是使用Java中的for和while循环完成的。

两个整数的LCM是可以被两个数字完全除(没有余数)的最小正整数。

示例1:使用while循环和if语句的LCM

public class LCM {
    public static void main(String[] args) {

        int n1 = 72, n2 = 120, lcm;

        //n1和n2之间的最大值存储在lcm中
        lcm = (n1 > n2) ? n1 : n2;

        // 始终为 true
        while(true)
        {
            if( lcm % n1 == 0 && lcm % n2 == 0 )
            {
                System.out.printf("%d和%d的最新公倍数是%d.", n1, n2, lcm);
                break;
            }
            ++lcm;
        }
    }
}

运行该程序时,输出为:

72 和120 的最新公倍数是360.

在这个程序中,要找到最小公倍数的两个数字分别存储在变量n1和n2中。
然后,我们首先将lcm设为这两个数中最大的。
这是因为,最小公倍数不能小于最大的数。在无限while循环(while(true))中,我们检查lcm是否完全除n1和n2。
如果是这样,我们就找到最小公倍数了。我们打印最小公倍数并使用break语句跳出while循环。
否则,我们将lcm增加1并重新测试可除性条件。

我们还可以使用GCD通过以下公式查找两个数字的LCM:

LCM = (n1 * n2) / GCD

如果您不知道如何用Java计算GCD,请检查Java程序以找到两个数字的GCD

示例2:使用最大公因数计算LCM

public class LCM {
    public static void main(String[] args) {

        int n1 = 72, n2 = 120, gcd = 1;

        for(int i = 1; i <= n1 && i <= n2; ++i)
        {
            //检查i是否是两个整数的因数
            if(n1 % i == 0 && n2 % i == 0)
                gcd = i;
        }

        int lcm = (n1 * n2) / gcd;
        System.out.printf("%d和%d的最新公倍数是%d.", n1, n2, lcm);
    }
}

该程序的输出与示例1相同。

在这里,在for循环内,我们计算两个数字-n1和n2的GCD。 计算后,我们使用上面的公式来计算LCM。

Java 实例大全