import sys
input = lambda :sys.stdin.readline()[:-1]
ni = lambda :int(input())
na = lambda :list(map(int,input().split()))
sys.setrecursionlimit(10**7)
yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES")
no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO")
#######################################################################

n = ni()
a = na()
m = max(a)+1
b = [0]*m
for i in range(n):
    b[a[i]] += 1
c = [0]*m
for i in range(1,m):
    for j in range(i, m, i):
        c[i]+=b[j]
#print(b)
for i in range(m-2,-1,-1):
    c[i] = max(c[i], c[i+1])
#print(c)
i = 0
for k in range(n):
    while i < m-1 and c[i+1]>=n-k:
        i += 1
    print(i)