求两个数的最小公倍数的 Java 程序
在这个程序中,您将学习使用 GCD 和不使用 GCD 来求两个数的最小公倍数。这是在 Java 中使用 for 和 while 循环完成的。
要理解此示例,您应该具备以下 Java 编程的知识:
两个整数的最小公倍数是可以被两个数字完全整除的最小正整数(没有余数)。
示例 1:使用 while 循环计算最小公倍数
public class Main {
public static void main(String[] args) {
int n1 = 72, n2 = 120, lcm;
// maximum number between n1 and n2 is stored in lcm
lcm = (n1 > n2) ? n1 : n2;
// Always 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
为两个数中最大的那个。这是因为,LCM 不能小于最大数。
在无限 while 循环 ( while(true)
) 中,我们检查 lcm
是否完美地将两者整除 n1
和 n2
。
如果是,我们就找到了他们的最小公倍数。然后打印 lcm
并从 while 循环中使用 break
语句跳出。
否则,lcm
增加 1 并重新测试可分条件。
我们还可以使用使用以下公式找到两个数字的最小公倍数:
最小公倍数 = (n1 * n2) / 最大公约数
如果您不知道如何在 Java 中计算 GCD,请查看Java 程序以找到两个数字的最大公约数。
示例 2:使用 GCD 计算最小公倍数
public class Main {
public static void main(String[] args) {
int n1 = 72, n2 = 120, gcd = 1;
for(int i = 1; i <= n1 && i <= n2; ++i) {
// Checks if i is factor of both integers
if(n1 % i == 0 && n2 % i == 0)
gcd = i;
}
int lcm = (n1 * n2) / gcd;
System.out.printf("The LCM of %d and %d is %d.", n1, n2, lcm);
}
}
该程序的输出与示例 1 相同。
在这里,在 for 循环中,我们首先计算 n1
和 n2
这两个数字的最小公倍数,然后,我们用上面的公式来计算 n1
和 n2
这两个数字的最小公倍数。