33 lines
678 B
Python
33 lines
678 B
Python
def divisor(x):
|
|
divs = []
|
|
for i in range(1, int(x ** (1 / 2)) + 1):
|
|
if x % i == 0:
|
|
divs.append(i)
|
|
for d in divs[::-1]:
|
|
t = x // d
|
|
if d == t:
|
|
continue
|
|
divs.append(x // d)
|
|
return divs
|
|
|
|
|
|
def gcd(x1, x2):
|
|
while x2 != 0:
|
|
temp = x1 % x2
|
|
x1 = x2
|
|
x2 = temp
|
|
return x1
|
|
|
|
|
|
def solve(N, M):
|
|
M.sort()
|
|
last_night = M[1] - M[0]
|
|
for i in range(1, N - 1):
|
|
last_night = gcd(last_night, M[i + 1] - M[i])
|
|
return " ".join(map(str, divisor(last_night)[1:]))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
n = int(input())
|
|
print(solve(n, list(map(int, (input() for i in range(n))))))
|