超过两个(或数组)数字的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