n = int(input()) M = 10**6+5 L = [0]*M for a in map(int,input().split()): L[a] += 1 ans = [1]*(n+1) for i in range(2,M)[::-1]: count = 0 for j in range(i,M,i): count += L[j] ans[n-count] = max(ans[n-count],i) for i in range(n): print(ans[i]) ans[i+1] = max(ans[i],ans[i+1])