output_description: Print all prime numbers p that divide f(x) for every integer x, in ascending
  order.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_N
      :
      a_0
attempt: def factorization(n):
      a = n
      p = 2
      D = {}
      while a != 1:
          cnt = 0
          while a % p == 0:
              cnt += 1
              a //= p
          if cnt:
              D[p] = cnt
          p += 1
          if a != 1 and p * p > n:
              D[a] = 1
              break
      return D
  
  
  N = int(input())
  A = [0 for _ in range(N + 1)]
  for i in range(N + 1):
      A[-i - 1] = int(input())
  non_zero = 0
  while A[non_zero] == 0:
      non_zero += 1
  num = 0
  if A[non_zero] < 0:
      num = -A[non_zero]
  else:
      num = A[non_zero]
  F = factorization(num)
  PS = sum(A)
  NS = 0
  for i in range(N + 1):
      NS += (i % 2 - (i + 1) % 2) * A[i]
  X = []
  for i in F:
      if PS % i == 0 and NS % i == 0:
          X.append(i)
  X.sort()
  NN = len(X)
  for i in range(NN):
      print(X[i])
  
problem_description: Statement
  
  You are given a polynomial of degree N with integer coefficients:
  f(x)=a_Nx^N+a_{N-1}x^{N-1}+...+a_0. Find all prime numbers p that divide f(x)
  for every integer x.
samples: [{"input": "2\n    7\n    -7\n    14", "output": "2\n    7\n    \n\n2 and 7 divide, for example, f(1)=14 and f(2)=28.\n\n* * *"}, {"input": "3\n    1\n    4\n    1\n    5", "output": "There may be no integers that satisfy the condition.\n\n* * *"}, {"input": "0\n    998244353", "output": "998244353"}]