Problem C: 数论只会gcd
Description
在112实验室的众多大佬中,有一个叫V巨巨的牛*人物,他和一个叫Q巨巨的大佬是死对头,于是他们之间进行了一场生死较量,他们定下的规则是这样的:
Q巨巨给出N个非负整数,V巨巨需要给出这N个非负整数的最大公约数;
如果V巨巨给出的答案是正确的,那么他就会得到Q巨巨的py优先权;如果V巨巨给出的答案是错误的,那么Q巨巨就会对V巨巨进行 “强人锁男” 的惩罚,他们之间已经较量过多次,不过V巨巨都是惨败,但是这次V巨巨想要赢一次,你能帮帮他吗?
Input
输入包含几组测试样例。每一组测试样例包含一个正整数N(1<= N <=100)。
接下来一行输入N个非负整数 (1<= a[i] <=1e9)。
Output
对于每个测试实例,请输出这N个非负整数的最大公约数,每个实例的输出占一行。
Sample Input
10
29 38 20 31 54 97 62 77 42 57
4
123 246 369 1230
Sample Output
1
123
题意:给出一个整数n, 接下来给出n个整数,要求出这n个数的最大公约数。
思路:先简化问题,求n个数的最大公约数,可以先求出前两个数的最大公约数,设为ans,然后用求已经得到的最大公约数在按顺序对下一个数去取最大公约数,每次更新ans的值,最后遍历整个数组,得到的最后的ans就是题目所要求的最大公约数。(n可能为1, 所以当n == 1时, 直接输出得到的数就可以了)
例如: 现有a1, a2, a3, a4四个数,可以先求出 a1 和 a2 的最大公约数ans,然后用这个数和a3求最大公约数,因为之前的ans满足a1和a2,现在继续对a3求最大公约数,也就同时满足了a1, a2, a