#include<bits/stdc++.h>
using namespace std;
const int M=1e6+10;
int n,c[M],ans[M];//c为每个能力值有多少个是它的倍数;
int main(){
ios::sync_with_stdio(false),cin.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
int x;
cin>>x;
for(int j=1;1ll*j*j<=x;j++){
if(x%j==0){
c[j]++;
if(j*j!=x){
c[x/j]++;
}
}
}
}
for(int i=1;i<=M;i++){
ans[c[i]]=i;
}
for(int i=n;i>=1;i--){
ans[i-1]=max(ans[i-1],ans[i]);
}
for(int i = 1;i<=n;i++){
cout<<ans[i]<<'\n';
}
return 0;
}