import math n = int(input()) a = list(map(int, input().split())) m = 10 ** 6 cnt = [0 for _ in range(m + 1)] for x in a: cnt[x] += 1 dp = [0 for _ in range(m + 1)] dp[1] = n for x in range(2, m + 1): for y in range(x, m + 1, x): dp[x] += cnt[y] ans = [0 for _ in range(n)] ans[0] = 1 for x in range(m, 0, -1): if dp[x] == 0: continue ans[n - dp[x]] = max(ans[n - dp[x]], x) ans[-1] = max(a) cur = 0 for i in range(n): cur = max(cur, ans[i]) ans[i] = max(ans[i], cur) print(*ans, sep="\n")