#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int N; cin >> N; int counter[1000010]; memset(counter, 0, sizeof(counter)); int a_max = 0; int A[N]; for (int i = 0; i < N; ++i) { cin >> A[i]; counter[A[i]]++; a_max = max(a_max, A[i]); } vector ans(N, 1); for (int i = 2; i <= a_max; ++i) { int v = 0; for (int j = i; j <= a_max; j += i) { v += counter[j]; } if (v != 0) { ans[N - v] = i; } } for (int i = 1; i < N; ++i) { ans[i] = max(ans[i], ans[i - 1]); } for (int i = 0; i < N; ++i) { cout << ans[i] << endl; } return 0; }