Problem:
Score : 800 points

Problem 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.

Constraints

0 \leq N \leq 10^4

|a_i| \leq 10^9(0\leq i\leq N)

a_N \neq 0

All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
a_N
:
a_0

Output

Print all prime numbers p that divide f(x) for every integer x, in ascending order.

Sample Input 1

2
7
-7
14

Sample Output 1

2
7

2 and 7 divide, for example, f(1)=14 and f(2)=28.

Sample Input 2

3
1
4
1
5

Sample Output 2

There may be no integers that satisfy the condition.

Sample Input 3

0
998244353

Sample Output 3

998244353

Solution in Ruby (2.3.3) (judge verdict: Runtime Error)

N = gets.to_i

as = []
N.times{|i|
	as << [N - 1, gets.to_i]
}
a0 = gets.to_i

#p as
#p a0

def decompose(n)
	(2..Math.sqrt(n).ceil).each{|i|
		if n % i == 0
			return [i] + decompose(n / i)
		end
	}
	return [n]
end

#def calc(as, x)
#	tmp_x = x
#	value = 0
#	as.reverse_each{|a|
#		value += a * tmp_x
#		tmp_x *= x
#	}
#	value
#end

def calc(as, x)
	value = 0
	as.each{|pow, a|
		value += a * (x ** pow)
	}
	value
end

def check(as, n)
	if as.length == 0
		return true
	end
	n.times{|x|
		value = calc(as, x)
		if value % n != 0
			return false
		end
	}
	return true
end

answers = []
decompose(a0).each{|n|
	new_as = []
	as.each{|pair|
		if pair[1] % n != 0
			new_as << pair
		end
	}
	answers << n if check(new_as, n)
}

answers.each{|n|
	puts n
}