import sys import math def sieve(n): is_prime = [True] * (n+1) p = 2 while (p * p <= n): if (is_prime[p] == True): for i in range(p * p, n+1, p): is_prime[i] = False p += 1 prime_numbers = [p for p in range(2, n+1) if is_prime[p]] return prime_numbers def count_prime_factors(n, primes): original_n = n count = 0 for p in primes: if p * p > n: break while (n % p == 0): n //= p count += 1 if n > 1: count += 1 return count def is_429_like(n, primes): return count_prime_factors(n, primes) == 3 input = sys.stdin.read data = input().split() Q = int(data[0]) A = list(map(int, data[1:])) primes = sieve(int(math.sqrt(10**10)) + 1) results = [] for a in A: if is_429_like(a, primes): results.append("Yes") else: results.append("No") sys.stdout.write("\n".join(results) + "\n")