题目描述
某人有N根网线,客户需要1米长的网线若干,他不想将网线全部分割1米运输的以防用不完浪费,又为了方便运输想恰好分割的一样长,他最长能分割成多长的网线去运输。
如样例4,36,72均最长能分割成4米长的网线,如6,9最长为3。
输入
第一行,一个整数N,表示下面将有N行每行一个ki表示第i个网线的长度(数据保证:N小于等于1000,ki不大于100000000不小于10)。
输出
一个数,即所有的网线能恰好分割的最长长度。
样例输入
3 4 36 72
样例输出
4
分析:就是求多个数的最小公约数即可
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int a;cin>>a;
int b[105],d;
for(int c=1;c<=a;c++)
cin>>b[c];
d=b[1];
for(int c=2;c<=a;c++)
d=gcd(d,b[c]);
cout<<d<<endl;
}