Java實現最大公約數和最小公倍數


學習目標:

用Java計算簡單數學問題

例題:

需求:輸入2個正整數,求這2個數的最大公約數和最小公倍數

代碼如下:

public static void main(String[] args) {
    // 輸入2個正整數,求最大公約數和最小公倍數
    // 最大公約數, 1> 第一步控制台輸入
    Scanner sc = new Scanner(System.in);
    System.out.println("請輸入第一個正整數:");
    int n = sc.nextInt();
    System.out.println("請輸入第二個正整數:");
    int m = sc.nextInt();
    // 2> 最大公約數小於等於最小的那個,取m和n中小的那個數
    if(n > 0 && m >0) {
        int min = (n < m) ? n : m;
        for (int i = min; i >= 1; i--) {
            if (n % i == 0 && m % i == 0) {
                System.out.println("最大公約數為:" + i);
                break;
            }
        }
        // 求最小公倍數,最小公倍數一定大於等於最大的那個數
        int max = (n > m) ? n : m;
        // 定義一個中間變量,用於存儲每次max加倍后的值
        int num = max;
        // 最小公倍數肯定為max的倍數,最大為:(n*m),最小為:max(n,m)
        // 所以定義i為max的倍數,倍數i一定小於等於n和m中小的那個,因為最小公倍數最大為2個數乘積
        for (int i = 1; i < n; i++) {
            if (num % m == 0 && num % n == 0) {
                System.out.println("最小公倍數為:" + num);
                break;
            } else {
                num = max * i;
            }
        }
    } else {
        System.out.println("輸入數據不合法,請輸入正整數!");
    }
}

運行效果:

請輸入第一個正整數:
6
請輸入第二個正整數:
9
最大公約數為:3
最小公倍數為:18

Process finished with exit code 0

總結:

以上就是最大公約數和最小公倍數的求法了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM