N=int(input()) A=list(map(int,input().split())) M=10**6+3 C=[0]*M for i in range(N): C[A[i]]+=1 X=[0]*M for i in range(2,M): for j in range(i,M,i): X[i]+=C[j] ANS=[0]*(N+1) for i in range(M): ANS[X[i]]=max(ANS[X[i]],i) for i in range(N-1,-1,-1): ANS[i]=max(ANS[i],ANS[i+1]) for i in range(N): print(ANS[N-i])