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);
}
}
在這個例子中,我們首先定義了兩個整數a
和b
,然後我們使用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
方法只能用於求兩個整數的最大公因數,如果你需要求多個整數的最大公因數,你需要使用其他方法。