有没有哪位大佬来看一下为什么4个点WA
就莫名其妙的出错了
#include <bits/stdc++.h>
using namespace std;
int t,n,a[1000001],current;
bool isPrime[5000001],w[1000001];
void solve(){
cin>>n;
current=0;
memset(w,true,sizeof(w));
memset(a,0,sizeof(a));
for(int i=0;i<n;i++){
cin>>a[i];
if(isPrime[a[i]]){
a[i]=0;
w[i]=true;
continue;
}
if(a[i]%4==0)
w[i]=false;
else
w[i]=true;
a[i]=a[i]/4+1;
}
for(int i=1;i<n;i++)
if(a[i]<a[current])
current=i;
if(w[current])
cout<<"Farmer John\n";
else
cout<<"Farmer Nhoj\n";
}
int main(){
cin>>t;
memset(isPrime,true,sizeof(isPrime));
for(int i=2;i*i<=5000000;i++)
if(isPrime[i])
for(int j=i*i;j<=5000000;j+=i)
isPrime[j]=false;
while(t--)
solve();
return 0;
}