using System; using System.Collections.Generic; using static System.Console; using System.Linq; class yuki321 { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static void Main() { var n = NN; var a = NList; var gcds = new int[1000001]; foreach (var ai in a) foreach (var div in Divs(ai)) { ++gcds[div]; } var counts = new int[n + 1]; for (var i = 0; i < gcds.Length; ++i) { counts[gcds[i]] = i; } for (var i = counts.Length - 2; i >= 0; --i) { counts[i] = Math.Max(counts[i + 1], counts[i]); } var res = new List(n); for (var i = n; i > 0; --i) res.Add(counts[i]); WriteLine(string.Join("\n", res)); } static List Divs(int a) { var list = new List(); var rev = new List(); for (var i = 1; i * i <= a; ++i) { if (a % i == 0) { list.Add(i); if (i * i < a) rev.Add(a / i); } } rev.Reverse(); list.AddRange(rev); return list; } }