问题 3671 --超级GCD函数

3671: 超级GCD函数★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 718  解决: 518
[提交][状态][命题人:]

题目描述

天佑在张博士的一次次不厌其烦的教导下,终于学会了gcd函数怎么写:

int gcd(int a,int b)

{
     if(a%b==0) return b;

     return gcd(b,a%b);

}

然而,这并不能满足天佑的野心。天佑很快就发明了一个超级gcd函数,可以计算出n个数的最大公因数。

请你编写一个代码,完成天佑的这个超级gcd函数。

输入

第一行输入数字n(n<1000),

接下来一行输入n个数,为a1,a2,a3…an

输出

输出超级gcd(a1,a2,a3…an)。
样例输入
Copy
4
16 12 4 8
样例输出
Copy
4

提示

可将a数组设为全局变量,函数的参数为起始与终止位置。

对于样例而言,16=4*4

12=3*4

8=2*4

4=1*4

所以输出4

且超级gcd(a1,a2,a3)=gcd(a1,gcd(a2,a3));

超级gcd(a1,a2,a3,a4)=gcd(a1,gcd(a2,gcd(a3,a4))) 

以此类推。

来源

[提交][状态]