裴蜀定理:\(a,b\) 为不全为 \(0\) 的整数,\(ax+by=c\) 有整数解当且仅当 \(\text{gcd}(a,b)|c\)。定理容易推广到多个整数的情况。
此题中,由裴蜀定理的推广得,\(\text{gcd}(A_1,A_2\cdots A_n)|S\),取 \(S\) 为最小公约数即可。
下面是 AC 代码:
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
n = int(input())
a = list(map(abs, map(int, input().split())))
result = a[0]
for i in range(1, len(a)):
result = gcd(result, a[i])
print(result)