English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在该程序中,您将学习使用Java程序查找两个数字的最小公倍数。这是使用Java中的for和while循环完成的。
两个整数的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를 찾기 위해。
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) { //두 정수의 배수를 확인합니다 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를 계산합니다.