求最大公约数

来源:互联网 发布:高分一号卫星数据价格 编辑:程序博客网 时间:2024/06/07 22:55

求N个数最大公约数

今年人人网笔试题

要求:

求N个数的最大公约数

格式:

输入:
3
3 6 9
输出:
3
#include <iostream>using namespace std;int main(){    int *a = new int;    int n=0,min=10000,count=0;    int temp;    cin>>n;//n代表求n个数的最大公约数    for(int i=0;i<n;i++)    {        cin>>a[i];    }    for(int j=0;j<n;j++)    {    //先找出输入数里边的最小数        if(min>a[j])        {            min=a[j];        }    }    //从最小数开始往下遍历,找出公约数,即为最大公约数    for (int k=min;k>0;k--)    {        for(int l=0;l<n;l++)        {            if(a[l]%k==0)            {                count++;            }        }        if(count==n)        {            temp = k;            break;        }        else            count = 0;    }    cout<<temp<<endl;    return 0;}

运行结果