求两个数的最小公倍数的 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

在这个程序中,要找到存储在变量 n1n2 中的两个数字的最小公倍数。

然后,我们最初设置 lcm 为两个数中最大的那个。这是因为,LCM 不能小于最大数。

在无限 while 循环 ( while(true) ) 中,我们检查 lcm 是否完美地将两者整除 n1n2

如果是,我们就找到了他们的最小公倍数。然后打印 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 循环中,我们首先计算 n1n2 这两个数字的最小公倍数,然后,我们用上面的公式来计算 n1n2 这两个数字的最小公倍数。