#include <bits/stdc++.h>
#define BUFF ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
#define FOR(a,b,i) for(int i=(a);i<=(b);i++)
#define REV(a,b,i) for(int i=(a);i>=(b);i--)
#define LOW(v,x) lower_bound(v.begin(),v.end(),x)
#define UP(v,x) upper_bound(v.begin(),v.end(),x)
#define SZ(x) ((int)x.size())
#define pb push_back
#define fi first
#define se second
#define INP(a) freopen(a,"r",stdin);
#define OUT(a) freopen(a,"w",stdout);
template<typename T>bool maximize(T& x,const T& y){return (x<y)?x=y,1:0;}
template<typename T>bool minimize(T& x,const T& y){return (x>y)?x=y,1:0;}
using namespace std;
using ll=long long;
using pa=pair<int,int>;
using str=string;
const int INF=1e9;
const int N=1e5+1;
const int A=1e3+1;
ll randInt(ll l,ll r){
return l+rand()%(r-l+1);
}
ll multiply(ll a,ll k,ll n){
ll res=0;
while(k){
if(k&1)res=(res+a)%n;
a=(a+a)%n;
k/=2;
}
return res;
}
ll binaryPower(ll a,ll k,ll n){
ll res=1;
while(k){
if(k&1)res=multiply(res,a,n);
a=multiply(a,a,n);
k/=2;
}
return res;
}
bool test(ll a,ll n,int k,ll m){ //2^k * m
ll mod=binaryPower(a,m,n);
if(mod==1||mod==n-1)return 1;
FOR(1,k-1,i){
mod=multiply(mod,mod,n);
if(mod==n-1)return 1;
}
return 0;
}
bool RabinMiller(ll n){
static vector<int>checkSet={2,3,5,7,11,13,17,19,23,29,31,37};
for(int x:checkSet){
if(n==x)return 1;
}
if(n<41)return 0;
int k=0;
ll m=n-1;
while(m%2==0){
m/=2;
k++;
}
for(int a:checkSet){
if(!test(a,n,k,m))return 0;
}
return 1;
}
void solve(){
int t;
cin>>t;
while(t--){
ll n;
cin>>n;
cout<<(RabinMiller(n)?"YES\n":"NO\n");
}
}
int main(){
srand(time(nullptr));
// INP("rabinmiller.inp")
BUFF
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgQlVGRiBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKG51bGxwdHIpO2NvdXQudGllKG51bGxwdHIpOwojZGVmaW5lIEZPUihhLGIsaSkgZm9yKGludCBpPShhKTtpPD0oYik7aSsrKQojZGVmaW5lIFJFVihhLGIsaSkgZm9yKGludCBpPShhKTtpPj0oYik7aS0tKQojZGVmaW5lIExPVyh2LHgpIGxvd2VyX2JvdW5kKHYuYmVnaW4oKSx2LmVuZCgpLHgpCiNkZWZpbmUgVVAodix4KSB1cHBlcl9ib3VuZCh2LmJlZ2luKCksdi5lbmQoKSx4KQojZGVmaW5lIFNaKHgpICgoaW50KXguc2l6ZSgpKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgSU5QKGEpIGZyZW9wZW4oYSwiciIsc3RkaW4pOwojZGVmaW5lIE9VVChhKSBmcmVvcGVuKGEsInciLHN0ZG91dCk7Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPmJvb2wgbWF4aW1pemUoVCYgeCxjb25zdCBUJiB5KXtyZXR1cm4gKHg8eSk/eD15LDE6MDt9CnRlbXBsYXRlPHR5cGVuYW1lIFQ+Ym9vbCBtaW5pbWl6ZShUJiB4LGNvbnN0IFQmIHkpe3JldHVybiAoeD55KT94PXksMTowO30KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsPWxvbmcgbG9uZzsKdXNpbmcgcGE9cGFpcjxpbnQsaW50PjsKdXNpbmcgc3RyPXN0cmluZzsKCmNvbnN0IGludCBJTkY9MWU5Owpjb25zdCBpbnQgTj0xZTUrMTsKY29uc3QgaW50IEE9MWUzKzE7CgpsbCByYW5kSW50KGxsIGwsbGwgcil7CglyZXR1cm4gbCtyYW5kKCklKHItbCsxKTsKfQoKbGwgbXVsdGlwbHkobGwgYSxsbCBrLGxsIG4pewoJbGwgcmVzPTA7Cgl3aGlsZShrKXsKCQlpZihrJjEpcmVzPShyZXMrYSklbjsKCQlhPShhK2EpJW47CgkJay89MjsKCX0KCXJldHVybiByZXM7Cn0KCmxsIGJpbmFyeVBvd2VyKGxsIGEsbGwgayxsbCBuKXsKCWxsIHJlcz0xOwoJd2hpbGUoayl7CgkJaWYoayYxKXJlcz1tdWx0aXBseShyZXMsYSxuKTsKCQlhPW11bHRpcGx5KGEsYSxuKTsKCQlrLz0yOwoJfQoJcmV0dXJuIHJlczsKfQoKYm9vbCB0ZXN0KGxsIGEsbGwgbixpbnQgayxsbCBtKXsgLy8yXmsgKiBtCglsbCBtb2Q9YmluYXJ5UG93ZXIoYSxtLG4pOwoJaWYobW9kPT0xfHxtb2Q9PW4tMSlyZXR1cm4gMTsKCglGT1IoMSxrLTEsaSl7CgkJbW9kPW11bHRpcGx5KG1vZCxtb2Qsbik7CgkJaWYobW9kPT1uLTEpcmV0dXJuIDE7Cgl9CglyZXR1cm4gMDsKfQoKYm9vbCBSYWJpbk1pbGxlcihsbCBuKXsKCXN0YXRpYyB2ZWN0b3I8aW50PmNoZWNrU2V0PXsyLDMsNSw3LDExLDEzLDE3LDE5LDIzLDI5LDMxLDM3fTsKCWZvcihpbnQgeDpjaGVja1NldCl7CgkJaWYobj09eClyZXR1cm4gMTsKCX0KCWlmKG48NDEpcmV0dXJuIDA7CgoJaW50IGs9MDsKCWxsIG09bi0xOwoJd2hpbGUobSUyPT0wKXsKCQltLz0yOwoJCWsrKzsKCX0KCWZvcihpbnQgYTpjaGVja1NldCl7CgkJaWYoIXRlc3QoYSxuLGssbSkpcmV0dXJuIDA7Cgl9CglyZXR1cm4gMTsKfQoKdm9pZCBzb2x2ZSgpewoJaW50IHQ7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pewoJCWxsIG47CgkJY2luPj5uOwoJCWNvdXQ8PChSYWJpbk1pbGxlcihuKT8iWUVTXG4iOiJOT1xuIik7Cgl9Cn0KCmludCBtYWluKCl7CglzcmFuZCh0aW1lKG51bGxwdHIpKTsKCS8vIElOUCgicmFiaW5taWxsZXIuaW5wIikKICAgIEJVRkYKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQo=