Primes_MAX = 10 ** 4 Primes = [] Sieve = [0] * Primes_MAX Sieve[0] = Sieve[1] = -1 for p in range(2, Primes_MAX): if not Sieve[p]: Primes.append(p) Sieve[p] = p for q in range(p * p, Primes_MAX, p): if not Sieve[q]: Sieve[q] = p def factorize(x): ret = [] while x != 1: p = Sieve[x] cnt = 0 while x % p == 0: x //= p cnt += 1 ret.append((p, cnt)) return ret for _ in range(int(input())): x = int(input()) for i in range(2, Primes_MAX): fs = factorize(i) pre = 1 for p, _ in fs: cnt = 0 tmp = x while tmp % p == 0: tmp //= p cnt += 1 pre *= 1 + cnt y = x * i nxt = 1 for p, _ in fs: cnt = 0 tmp = y while tmp % p == 0: tmp //= p cnt += 1 nxt *= 1 + cnt if 2 * pre == nxt: print(y) break