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


在本文中,我们将学习如何使用Java查找两个数字的最小公倍数。L.C.M.最小公倍数是两个值的最小正值,它是这两个值的倍数。

例如,3和4的倍数是

3 → 3, 6, 9, 12, 15 ...
4 → 4, 8, 12, 16, 20 ...

这两个数的最小倍数是12,因此3和4的最小公倍数是12。

我们将通过两种不同的方法学习解决这个问题:增量方法和使用最大公约数 (GCD)的基于公式的方法。

问题陈述

编写一个Java程序来查找两个数字的最小公倍数。以下是相同内容的演示 -

输入

Enter first number ::

6
Enter second number ::
10

输出

LCM of given numbers is :: 1059

不同的方法

以下是查找两个数字的最小公倍数的不同方法 -

使用增量方法

以下是使用增量方法查找两个数字的最小公倍数的步骤 -

  • 首先,从java.util包导入Scanner类以允许用户输入。
  • 初始化整数变量a、b、max、steplcm
  • 实例化Scanner对象以读取用户的输入。
  • 要求用户输入两个整数,并将它们存储在ab中。
  • 确定最大值:识别两个数字中较大的一个,并将其分配给max和step。
  • 使用while循环检查可被ab整除的最小数字
  • 如果max可被ab整除,则将lcm设置为max并退出循环。
  • 如果不是,则将max增加step并继续检查。
  • 将计算出的LCM打印到控制台,并关闭Scanner对象以防止资源泄漏。

示例

以下是查找两个数字的最小公倍数的Java程序 -

import java.util.Scanner;
public class LCMOfTwoNumbers {
   public static void main(String args[]){
      int a, b, max, step, lcm = 0;
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter first number ::");
      a = sc.nextInt();
      System.out.println("Enter second number ::");
      b = sc.nextInt();

      if(a > b){
         max = step = a;
      }
      else{
         max = step = b;
      }

      while(a!= 0) {
         if(max % a == 0 && max % b == 0) {
            lcm = max;
            break;
         }
         max += step;
      }
      System.out.println("LCM of given numbers is :: "+lcm);
   }
}

输出

Enter first number ::
6
Enter second number ::
10
LCM of given numbers is :: 30

使用Math.gcd()方法

以下是使用Math.gcd()计算LCM的Java程序 -

  • java.util包导入Scanner类
  • 声明两个整数变量ab以存储用户输入的值,以及一个变量lcm以存储结果。
  • 创建一个Scanner对象以读取用户的输入。
  • 提示用户输入两个数字,并将这些值赋给a和b。
  • 使用公式计算LCMLCM(a, b) = (a * b) / GCD(a, b),其中GCD使用Math.gcd()方法获得。
  • 在控制台中显示计算出的LCM
  • 关闭程序。

示例

以下是查找两个数字的最小公倍数的Java程序 -

import java.util.Scanner;

public class Main {
   public static void main(String args[]) {
      int a, b, lcm;
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter first number ::");
      a = sc.nextInt();
      System.out.println("Enter second number ::");
      b = sc.nextInt();

      // Calculate LCM using the formula: LCM(a, b) = (a * b) / GCD(a, b)
      lcm = (a * b) / gcd(a, b);
      
      System.out.println("LCM of given numbers is :: " + lcm);
   }
   
   // Method to calculate GCD
   public static int gcd(int a, int b) {
      if (b == 0) {
         return a;
      }
      return gcd(b, a % b);
   }
}

输出

Enter first number ::
33
Enter second number ::
44
LCM of given numbers is :: 132

更新于: 2024年10月23日

7K+ 次查看

开启你的职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.