#include using namespace std; #include using namespace atcoder; #define ll long long #define rep(i, n) for (int i = 0; i < (n); i++) #define P pair #define LP pair #define fi first #define se second #define pb push_back #define eb emplace_back #define all(s) s.begin(), s.end() #define rall(s) s.rbegin(), s.rend() template void chmax(T& a, T b) { a = max(a, b); }; template void chmin(T& a, T b) { a = min(a, b); }; int main() { int n; cin >> n; vector g[1000005]; rep(i,n) { int a; cin >> a; for (int j = 1; j*j <= a; j++) { if (a%j==0) { if (j*j==a) g[j].pb(a); else { g[j].pb(a); g[a/j].pb(a); } } } } vector mx(n+1); rep(i,1000005) { int num = g[i].size(); chmax(mx[n-num], i); } int ans = 0; rep(k,n) { chmax(ans, mx[k]); cout << ans << endl; } return 0; }