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