📜  超过两个(或数组)数字的GCD Java程序

📅  最后修改于: 2021-05-04 12:05:45             🧑  作者: Mango

三个或更多数字的GCD等于所有数字共有的质数因子的乘积,但也可以通过重复获取数字对的GCD来计算。

gcd(a, b, c) = gcd(a, gcd(b, c)) 
             = gcd(gcd(a, b), c) 
             = gcd(gcd(a, c), b)
// Java program to find GCD of two or
// more numbers
  
public class GCD {
    // Function to return gcd of a and b
    static int gcd(int a, int b)
    {
        if (a == 0)
            return b;
        return gcd(b % a, a);
    }
  
    // Function to find gcd of array of
    // numbers
    static int findGCD(int arr[], int n)
    {
        int result = arr[0];
        for (int i = 1; i < n; i++)
            result = gcd(arr[i], result);
  
        return result;
    }
  
    public static void main(String[] args)
    {
        int arr[] = { 2, 4, 6, 8, 16 };
        int n = arr.length;
        System.out.println(findGCD(arr, n));
    }
}
  
// This code is contributed by Saket Kumar
输出:
2

有关更多详细信息,请参考GCD上包含两个(或多个)数字的完整文章!