We know that prime numbers are positive integers that have exactly two distinct positive divisors. Similarly, we'll call a positive integer *t* Т-prime, if *t* has exactly three distinct positive divisors.

You are given an array of *n* positive integers. For each of them determine whether it is Т-prime or not.
The first line contains a single positive integer, *n* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>), showing how many numbers are in the array. The next line contains *n* space-separated integers *x*<sub class="lower-index">*i*</sub> (1 ≤ *x*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">12</sup>).

Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is advised to use the cin, cout streams or the %I64d specifier.

# Version 21.0
import os, sys, math, itertools
from collections import deque, defaultdict, OrderedDict, Counter
from bisect import bisect, bisect_left, bisect_right, insort
from heapq import heapify, heappush, heappop, nsmallest, nlargest, heapreplace, heappushpop

offline = __debug__
if not offline:
    import io
    input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline

ii = lambda : int(input())
si = lambda : input()               
mi = lambda : map(int,input().strip().split(" "))
msi = lambda : map(str,input().strip().split(" ")) 
li = lambda : list(mi())
lsi = lambda : list(msi())
out = []
export = lambda : sys.stdout.write('\n'.join(map(str, out)))
p = lambda x : out.append(x)
pp = lambda array : p(' '.join(map(str,array)))

def main() -> None:
    # 2023-10-20 21:04:51
    def sieve( n : int) -> list:
        isPrime = [True for i in range(n+1)]
        isPrime[0] = isPrime[1] = False
        for i in range(4,n+1,2): isPrime[i] = False
        for i in range(3,n+1,2):
            if i*i <= n and isPrime[i]:
                for j in range(i*i,n+1,i): isPrime[j] = False
        return [idx for idx,i in enumerate(isPrime) if i==True]

    def prime_factorization(n:int) -> list:
        prime_factors = []
        for i in primes: # precomputed primes using sieve
            if i * i > n: break
            while n % i == 0:
                prime_factors.append(i)
                n //= i
        if n > 1: prime_factors.append(n)
        return prime_factors

    def NOD(num) -> int:
        total = 1
        i = 2
        while i * i <= num:
            if num % i == 0:
                e = 0
                while num % i == 0:
                    e+=1
                    num //= i
                total *= e + 1
            i+=1
        if num > 1: total *= 2
        return total


    #primes = sieve(int(10e5))

    n = ii()
    l = li()
    for i in l:
        ans = NOD(i)
        if ans == 3:
            p('YES')
        else:
            p('No')



try: exec('from hq import *\nexec(cc)')
except (FileNotFoundError, ModuleNotFoundError): main(); export()
 				    		 		        	 	