from collections import defaultdict def prime_factorize(n): # https://note.nkmk.me/python-prime-factorization/ a = defaultdict(int) while n % 2 == 0: a[2] += 1 n //= 2 f = 3 while f * f <= n: if n % f == 0: a[f] += 1 n //= f else: f += 2 if n != 1: a[n] += 1 return a def sieve_of_eratosthenes(n): # https://af-e.net/python-sieve-of-eratosthenes/ primes = [True] * (n + 1) p = 2 while (p * p <= n): if primes[p]: for i in range(p * p, n + 1, p): primes[i] = False p += 1 return [p for p in range(2, n + 1) if primes[p]] p = sieve_of_eratosthenes(10**6) ans = [] Q = int(input()) for _ in range(Q): N = int(input()) a = set(prime_factorize(N).values()) for i in range(60,0,-1): if(all([x%i == 0 for x in a])): ans.append(str(i)) break print("\n".join(ans))