看着书乱写的,然后无论测什么数都输出 NO,不知道拿出了问题。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,t;
ll read(){
ll get=0,w=1;
char c=getchar();
while(c<'0'||c>'9') (c=='-')?w=-1:1,c=getchar();
while(c>='0'&&c<='9') get=get*10+c-'0',c=getchar();
return get*w;
}
void write(ll a){
(a<0)?putchar('-'),a=-a:1;
if(a>=10){
write(a/10);
}
putchar(a%10+'0');
}
ll FastPow(ll a,ll b,ll Mod){
ll Return=1;
a%=Mod;
while(b){
(b&1)?Return=(Return*a)%Mod:1;
b>>=1,a=(a*a)%Mod;
}
return Return;
}
bool Fermat(int Test,ll n){
while(Test--){
ll a=rand()%n+1;
if(FastPow(a,n-1,n)!=1){
return false;
}
}
return true;
}
int main(){
srand(time(NULL));
t=read();
while(t--){
n=read();
puts(Fermat(100,n)?"YES":"NO");
}
return 0;
}