预处理得到所有数的因数,设一个数组保存因数的个数
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int n, num[1000100], ma;
int main() {
cin >> n;
for(int a, i = 0; i < n; i++) {
cin >> a;
ma = max(a, ma);
int s = sqrt(a);
for(int j = 1; j <= s; j++) {
if(a % j == 0) {
num[j]++;
if(j * j != a)
num[a / j]++;
}
}
}
for(int i = 1; i <= n; i++) {
while(num[ma] < i)
ma--;
cout << ma << endl;
}
return 0;
}