백준 2981 - 검문 (파이썬)

Updated:

Answer

import math

n = int(input())
a = [0] * n
b = []
gcd = 0

for i in range(n):
    a[i] = int(input())
    if i == 1:
        gcd = a[1] - a[0]
    gcd = math.gcd(abs(a[i] - a[i - 1]), gcd)

for i in range(2, int(math.sqrt(gcd)) + 1):
    if gcd % i == 0:
        b.append(i)
        b.append(gcd // i)

b.append(gcd)
b = list(set(b))
b.sort()

print(*b)

Categories:

Updated: