#include<stdio.h>
int main()
{
	int a,b,c,n;
	scanf("%d %d %d",&n,&a,&b);
	if(n==2){
		for (int i=1; i < a ;i++) {
			if(a%i+b%i==0){
				printf("%d\n",i);
			}
		}
	}else if(n==3){
		scanf("%d",&c);
		for (int i=1; i < a ;i++) {
			if(a%i+b%i+c%i==0){
				printf("%d\n",i);
			}
		}
	}
	return 0;
}
#include "bits/stdc++.h"
#define rep(i,a,n) for(int i = a;i < n;i++)
typedef unsigned long long ull;
typedef long long ll;
using namespace std;

int main(){
    int n,memo;
    priority_queue<int,vector<int>,greater<int> > que;
    cin >> n;
    int a[n];
    
    rep(i,0,n){
        cin >> a[i];
    }
    
    sort(a,a+n);
    
    rep(i,1,sqrt(a[n-1])+1){
        rep(j,0,n){
            if(a[j] % i)break;
            else if(j == n-1)que.push(i);
        }
        
        if(a[n-1]/i == i)continue;
        
        rep(j,0,n){
            if(a[j] % (a[n-1]/i))break;
            else if(j == n-1)que.push(a[n-1]/i);
        }
    }
    
    while(!que.empty()){
        if(que.top() == memo){
            que.pop();
            continue;
        }
        memo = que.top(); que.pop();
        
        cout << memo << endl;
    }
}
