#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int gcm(int a,int b)
{
int tmp;
while(b) {
tmp=a%b;
a=b;
b=tmp;
}
return a;
}
int main(int argc,char* argv[])
{
int n;
scanf("%d\n",&n);
int max;
if(n==2) {
int a,b;
scanf("%d %d\n",&a,&b);
max=gcm(a,b);
} else {
int a,b,c;
scanf("%d %d %d\n",&a,&b,&c);
max=gcm(gcm(a,b),c);
}
vector<int> reverses;
for(int i=1;i*i<=max;i++) {
if(max%i==0) {
printf("%d\n",i);
if(i!=max/i)reverses.push_back(max/i);
}
}
for(vector<int>::reverse_iterator i=reverses.rbegin();i!=reverses.rend();i++) {
printf("%d\n",*i);
}
return 0;
}