#include <bits/stdc++.h>
typedef long long LL;
typedef unsigned long long ULL;
typedef long double LD;
#define ve vector
#define mem(arr,val) memset((arr),(val),(sizeof(arr)))
using namespace std;
const int INF = 0x7ffffff;
int t;
inline LL exp(LL a,LL m,LL n)
{
if(!m) return 0;
if(m == 1) return (a%n);
LL w = exp(a,m/2,n);
w = w*w%n;
if(m&1) w = w*a%n;
return w;
}
inline bool mr(LL n)
{
if(n == 2) return true;
for(int i = 0;i < 10;++i)
{
LL a = rand()%(n-2)+2;
if(exp(a,n,n) != a) return false;
}
return true;
}
int main(int argc,char *argv[])
{
scanf("%d",&t);
while(t--)
{
LL n;scanf("%lld",&n);
if(mr(n)) puts("YES");
else puts("NO");
}
return 0;
}