#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;
}