#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
//n个数的最大公约数
/*
**求出n个数中最小的,如果从n递减到2中有能被其他所有数相除的,这个数就是这n个数的最大公约数
**
*/
int gcd(int *carray){
int arrayLength = sizeof(carray)/sizeof(int);
sort(carray,carray + arrayLength);
int min = carray[0];
bool flag = true;
int result;
for(int i = min; i >= 2; i--)
{
for(int j = 1; j < arrayLength; j++)
{
if(carray[j] % i != 0)
flag = false;
}
if(flag && min % i == 0) { result = i; break; }
}
return result;
}
int main()
{
int a[] = { 9,27,81,72};
cout << gcd(a);
system("pause");
}
n个数的最大公约数
最新推荐文章于 2024-03-30 18:41:44 发布