📜  G ++的两个以上(或数组)数字的C++程序

📅  最后修改于: 2021-05-04 19:00:38             🧑  作者: Mango

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

gcd(a, b, c) = gcd(a, gcd(b, c)) 
             = gcd(gcd(a, b), c) 
             = gcd(gcd(a, c), b)
// C++ program to find GCD of two or
// more numbers
#include 
using namespace std;
  
// Function to return gcd of a and b
int gcd(int a, int b)
{
    if (a == 0)
        return b;
    return gcd(b % a, a);
}
  
// Function to find gcd of array of
// numbers
int findGCD(int arr[], int n)
{
    int result = arr[0];
    for (int i = 1; i < n; i++)
        result = gcd(arr[i], result);
  
    return result;
}
  
// Driven code
int main()
{
    int arr[] = { 2, 4, 6, 8, 16 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << findGCD(arr, n) << endl;
    return 0;
}
输出:
2

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

想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”