Java求最大公因數

在Java中,你可以使用java.lang.Math類中的gcd方法來求兩個整數的最大公因數(Greatest Common Divisor, GCD)。這個方法返回兩個整數的最大公因數,如果參數不是整數,它將返回Double.NaN

下面是一個簡單的例子,展示了如何使用gcd方法來求兩個整數的最大公因數:

import java.lang.Math;

public class GCDExample {
    public static void main(String[] args) {
        int a = 40;
        int b = 20;
        double gcd = Math.gcd(a, b);
        System.out.println("The GCD of " + a + " and " + b + " is " + gcd);
    }
}

在這個例子中,我們首先定義了兩個整數ab,然後我們使用Math.gcd方法來求它們的最大公因數,並將結果列印出來。

如果你需要求兩個以上整數的最大公因數,你可以使用遞歸或者輾轉相除法(Euclidean algorithm)來計算。下面是一個使用輾轉相除法求多個整數最大公因數的例子:

import java.util.Arrays;

public class GCDMultipleNumbers {
    public static void main(String[] args) {
        int[] numbers = {40, 20, 15, 5};
        int gcd = gcdOfMultipleNumbers(numbers);
        System.out.println("The GCD of " + Arrays.toString(numbers) + " is " + gcd);
    }

    public static int gcdOfMultipleNumbers(int[] numbers) {
        int min = numbers[0];
        for (int i = 1; i < numbers.length; i++) {
            min = gcd(min, numbers[i]);
        }
        return min;
    }

    public static int gcd(int a, int b) {
        if (b == 0) {
            return a;
        } else {
            return gcd(b, a % b);
        }
    }
}

在這個例子中,我們定義了一個遞歸方法gcd來計算兩個整數的最大公因數,然後我們定義了一個方法gcdOfMultipleNumbers來計算多個整數的最大公因數。這個方法遍歷數組中的所有元素,並使用gcd方法來計算它們的最大公因數。

請注意,Math.gcd方法只能用於求兩個整數的最大公因數,如果你需要求多個整數的最大公因數,你需要使用其他方法。