#nullable enable #region var _input = Array.Empty(); var _iter = 0; string String() { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Split(' '), 0); return _input[_iter++]; } T I() where T : IParsable => T.Parse(String(), null); #endregion T[] Range(int n, Func F) => Enumerable.Range(0, n).Select(_ => F()).ToArray(); static long? SafePower(long x, int p) { var res = 1L; while (p > 0) { if ((p & 1) > 0) { if (res >= long.MaxValue / x) return null; res *= x; } if (x >= long.MaxValue / x) return null; x *= x; p >>= 1; } return res; } long Run() { var n = I(); for (var i = 40; i >= 2; i--) { var pass = 0L; var fail = n; while (fail - pass > 1) { var middle = (fail + pass) >> 1; var next = SafePower(middle, i); if (next.HasValue && next.Value <= n) pass = middle; else fail = middle; } var k = SafePower(pass, i)!.Value; if (k == n) return i; } return 1; } string Join(IEnumerable values, bool ws = false) => string.Join(ws ? " " : Environment.NewLine, values); Console.WriteLine(Join(Range(I(), Run)));