#include using namespace std; int main(){ int N; cin >> N; vector A(N); for (int i = 0; i < N; i++){ cin >> A[i]; } vector B(1000001, 0); for (int i = 0; i < N; i++){ B[A[i]]++; } vector prime(1000001, true); for (int i = 2; i <= 1000000; i++){ if (prime[i]){ for (int j = 1000000 / i * i; j >= i; j -= i){ B[j / i] += B[j]; if (j > i){ prime[j] = false; } } } } vector mx(N + 1, 0); for (int i = 1; i <= 1000000; i++){ mx[B[i]] = max(mx[B[i]], i); } for (int i = N - 1; i >= 0; i--){ mx[i] = max(mx[i], mx[i + 1]); } for (int i = N; i >= 1; i--){ cout << mx[i] << endl; } }