#include <bits/stdc++.h>
using namespace std;
using u64 = uint64_t;
using u128 = unsigned __int128;
static constexpr u64 bases[] =
{2ULL, 325ULL, 9375ULL, 28178ULL,450775ULL, 9780504ULL, 1795265022ULL};
static constexpr u64 small_primes[] =
{2ULL,3ULL,5ULL,7ULL,11ULL,13ULL,17ULL,19ULL,23ULL,29ULL,31ULL,37ULL};
// u64 mulmod(u64 a, u64 b, u64 mod){
// return (u128)a*b %mod;
// }
u64 modpow(u64 base, u64 expo, u64 mod){
u64 res = 1;
base %= mod;
while(expo){
if(expo&1) res = (u128)res*base %mod;
base = (u128)base*base %mod;
expo >>= 1;
}
return res;
}
bool isComposite(u64 a, u64 d, int s, u64 n){
u64 x = modpow(a, d, n);
if(x==1 || x==n-1) return false;
for(int r=1; r<s; r++){
x = (u128)x*x %n;
if(x==n-1) return false;
}
return true;
}
bool isPrime(u64 n){
if(n<2) return false;
for(u64 p : small_primes){
if(n==p) return true;
if(n%p==0) return false;
}
u64 d = n-1;
int s = __builtin_ctzll(d);
d >>= s;
for(u64 a : bases){
if(a%n==0) continue;
if(isComposite(a, d, s, n)) return false;
}
return true;
}
int main(){
int t; cin >> t;
while(t--){
long long n; cin >> n;
cout << (isPrime(n) ? "YES\n" : "NO\n");
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyB1NjQgID0gdWludDY0X3Q7CnVzaW5nIHUxMjggPSB1bnNpZ25lZCBfX2ludDEyODsKCnN0YXRpYyBjb25zdGV4cHIgdTY0IGJhc2VzW10gPSAKezJVTEwsIDMyNVVMTCwgOTM3NVVMTCwgMjgxNzhVTEwsNDUwNzc1VUxMLCA5NzgwNTA0VUxMLCAxNzk1MjY1MDIyVUxMfTsKCnN0YXRpYyBjb25zdGV4cHIgdTY0IHNtYWxsX3ByaW1lc1tdID0gCnsyVUxMLDNVTEwsNVVMTCw3VUxMLDExVUxMLDEzVUxMLDE3VUxMLDE5VUxMLDIzVUxMLDI5VUxMLDMxVUxMLDM3VUxMfTsKCi8vIHU2NCBtdWxtb2QodTY0IGEsIHU2NCBiLCB1NjQgbW9kKXsKLy8gICAgIHJldHVybiAodTEyOClhKmIgJW1vZDsgCi8vIH0KCnU2NCBtb2Rwb3codTY0IGJhc2UsIHU2NCBleHBvLCB1NjQgbW9kKXsKICAgIHU2NCByZXMgPSAxOwogICAgYmFzZSAlPSBtb2Q7CiAgICB3aGlsZShleHBvKXsKICAgICAgIGlmKGV4cG8mMSkgcmVzID0gKHUxMjgpcmVzKmJhc2UgJW1vZDsKICAgICAgIGJhc2UgPSAodTEyOCliYXNlKmJhc2UgJW1vZDsKICAgICAgIGV4cG8gPj49IDE7CiAgICB9CnJldHVybiByZXM7Cn0KCmJvb2wgaXNDb21wb3NpdGUodTY0IGEsIHU2NCBkLCBpbnQgcywgdTY0IG4pewogICAgCiAgICB1NjQgeCA9IG1vZHBvdyhhLCBkLCBuKTsKICAgIGlmKHg9PTEgfHwgeD09bi0xKSByZXR1cm4gZmFsc2U7CgogICAgZm9yKGludCByPTE7IHI8czsgcisrKXsKICAgICAgIHggPSAodTEyOCl4KnggJW47CiAgICAgICBpZih4PT1uLTEpIHJldHVybiBmYWxzZTsKICAgIH0KcmV0dXJuIHRydWU7Cn0KCmJvb2wgaXNQcmltZSh1NjQgbil7CiAgICAKICAgIGlmKG48MikgcmV0dXJuIGZhbHNlOwoKICAgIGZvcih1NjQgcCA6IHNtYWxsX3ByaW1lcyl7CiAgICAgICBpZihuPT1wKSByZXR1cm4gdHJ1ZTsKICAgICAgIGlmKG4lcD09MCkgcmV0dXJuIGZhbHNlOwogICAgfQogICAgCiAgICB1NjQgZCA9IG4tMTsKICAgIGludCBzID0gX19idWlsdGluX2N0emxsKGQpOwogICAgZCA+Pj0gczsKCiAgICBmb3IodTY0IGEgOiBiYXNlcyl7CiAgICAgICBpZihhJW49PTApIGNvbnRpbnVlOwogICAgICAgaWYoaXNDb21wb3NpdGUoYSwgZCwgcywgbikpIHJldHVybiBmYWxzZTsKICAgIH0KcmV0dXJuIHRydWU7Cn0KCmludCBtYWluKCl7CiAgICAKICAgIGludCB0OyBjaW4gPj4gdDsKICAgIAogICAgd2hpbGUodC0tKXsKICAgIGxvbmcgbG9uZyBuOyBjaW4gPj4gbjsKICAgIGNvdXQgPDwgKGlzUHJpbWUobikgPyAiWUVTXG4iIDogIk5PXG4iKTsKICAgIH0KICAgIApyZXR1cm4gMDsgICAgCn0K