nn = gets.to_i
aa = gets.split.map(&:to_i)

# 0を使う場合、最小から2つめを採用
g=[]
a0 = aa[0]
(nn-1).times do |i|
  g<< a0.gcd(aa[i+1])
end
mins = g.min(2)

# 0を使わない場合、最小
a0 = aa[1]
min = aa[1]
(nn-2).times do |i|
  gcd = a0.gcd(aa[i+2])
  min = gcd if min>gcd
end
puts [mins[-1],min].max
