入力ファイルの１行目に正整数 n が書いてあり， ２行目には半角空白文字１つを区切りとして， n 個の正整数が書いてある． n は 2 または 3 であり， ２行目に書かれているどの整数も値は 108 以下である． これら２個または３個の数の公約数をすべて求め， 小さい方から順に1行に1個ずつ出力せよ． 自明な公約数（「１」）も出力すること．  出力ファイルにおいては， 出力の最後行にも改行コードを入れること．
def run():
    n = int(input())
    nls = sorted([int(i) for i in input().split()])
    result = []
    for i in range(1, nls[0] + 1):
        flag = 1
        for j in nls:
            if j % i:
                flag = 0
                break
            else:
                continue
        if flag:
            result.append(i)
    print(" ".join(map(str, result)))

if __name__ == '__main__':
    run()

def run():
    n = int(input())
    nls = sorted([int(i) for i in input().split()])
    result = []
    for i in range(1, nls[0] + 1):
        flag = 1
        for j in nls:
            if j % i:
                flag = 0
                break
            else:
                continue
        if flag:
            result.append(i)
    for i in result:
        print(i)

if __name__ == '__main__':
    run()
