超过两个(或数组)数字的GCD的C ++程序?

两个数字的共同除数是两个数字的除数。

例如,除数12为1、2、3、4、6、12。除数18为1、2、3、6、9、18。因此,公共除数12和18为1、2。 ,3、6。其中最大的也许称为12和18,这不足为奇。两个整数a和b的最大公约数的常用数学符号表示为(a,b)。因此,(12,18)= 6。

由于许多原因,最大公约数很重要。例如,它可以用于计算两个数字的和,即,最小整数,是这些数字的倍数。数字a和b的最小公倍数可以计算为a * b *(a,b)

例如,12和18的最小公倍数是12 * 18 *(12,18)= 12 * 18 * 6

Input: 4, 10, 16, 14
Output: 2

说明

两个或多个整数的GCD是可以精确地将两个数相除(没有余数)的最大整数。

示例

#include <iostream>
using namespace std;
int gcd(int a,int b) {
   int temp;
   while(b > 0) {
      temp = b;
      b = a % b;
      a = temp;
   }
   return a;
}
int main() {
   int a[] = {4, 10, 16, 14};
   int n = 4;
   int r = a[0];
   for(int i=1; i<n; i++) {
      r = gcd(r, a[i]);
   }
   cout << r << endl;
   return 0;
}

输出结果

4