//bismillahir rahmanir rahim			//Author:Fayed Anik
#include <iostream>
#include <math.h>
#include <string.h>
#include <vector>
#include <stack>
#include <algorithm>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <cstdio>
#include <iterator>
#include <numeric>
#define         ll                         long  long
#define         lf                         double
#define         pb(x)                      push_back(x)
#define         ull                        unsigned long long
#define         sfl(a)                     scanf("%lld",&a)
#define         sf(a)                      scanf("%d",&a)
#define         pf(a)                      printf("%d\n",a)
#define         pfl(a)                     printf("%lld\n",a)
#define         pdl(a)                     printf("%llf\n",a)
#define         FOR(x,n)                   for(int x=1;x<=n;++x)
#define         vii                        vector< ll > v
#define         pi                         3.14159265359
#define         mex                        10000000
#define         pii                        pair< ll , ll >
#define         mem(m,a)                   memset( m, a,sizeof m)
#define         mp(a,b)        		   make_pair(a,b)
#define		maxn                       100000
//#define		mod                        1000000007
#define		INF			   1e17
#define 	f1 			   first
#define		f2			   second
#define		all(v)		           v.begin(),v.end()
#define		PI                         acos(-1)
#define		printminusone              printf("-1\n")
#define		bug			   printf("bug")

using namespace std;

ll multiply( ll a , ll b , ll mod ){

    a = a%mod;

    ll res = 0;

    while ( b ){

        if ( b & 1 ){

            res = (res + a)%mod;
        }

        a = (2*a)%mod;

        b = b >> 1;
    }

    return res;
}

ll fastexpo( ll b , ll p , ll mod ){

    ll res = 1;

    while ( p ){

        if ( p & 1 ) res = (res * b) %mod;

        b = ( b*b ) % mod;

        p = p >> 1;
    }

    return res;
}

bool millerrabin( ll n , ll d ){

    ll a=2+rand()%(n-4); // find any random number [2,n-2]

    // find x = pow(a,d)%n;

    ll x = fastexpo(a,d,n);

    if ( x==1 or x== n-1 ) return true;

    while ( d != n-1 ){

        x= multiply(x,x,n);

        d = d*2;

        if ( x==1 ) return false;

        if ( x==n-1 ) return true;

    }

    return false;
}

bool primality( ll n , ll k ){

    if ( n <=4 and n != 2 and n!= 3 ){

        return false;
    }

    if ( n == 2 or n==3){

        return true;
    }

    //n-1 is odd
    // find d such that n-1 is d*2^r;

    ll d = n-1;

    while ( d%2 == 0){

        d = d/2;
    }

    for ( ll i = 1; i <= k; i++ ){

        if ( millerrabin(n,d) ){

            continue;
        }
        else{

            return false;
        }
    }

    return true;
}

int main(){

    int tc;

    sf(tc);

    while (tc--){

        ll n;

        sfl ( n );

        if ( primality(n,1) ){

            printf("YES\n");
        }

        else{

            printf("NO\n");
        }
    }
}
