## https://yukicoder.me/problems/no/3236 def main(): Q = int(input()) N = [] for _ in range(Q): N.append(int(input())) max_n = max(N) k = 2 a_map = {} while 2 ** k <= max_n: a = 2 while a ** k <= max_n: a_map[a ** k] = k a += 1 k += 1 for n in N: if n in a_map: print(a_map[n]) else: print(1) if __name__ == "__main__": main()