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.