#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; #include using namespace std; struct Eratosthenes{ vector isprime; vector minfactor; vector mobius; Eratosthenes(int N) : isprime(N+1,true), minfactor(N+1,-1), mobius(N+1,1){ isprime[1]=false; minfactor[1]=1; for(int p=2;p<=N;++p){ if(!isprime[p]) continue; minfactor[p]=p; mobius[p]=-1; for(int q=p*2;q<=N;q+=p){ isprime[q]=false; if(minfactor[q]==-1) minfactor[q]=p; if((q/p)%p==0) mobius[q]=0; else mobius[q]=-mobius[q]; } } } vector> factorize(int n){ vector> res; while(n>1){ int p=minfactor[n]; int exp=0; while(minfactor[n]==p){ n/=p; ++exp; } res.emplace_back(p, exp); } return res; } vector divisors(int n){ vector res({1}); auto pf=factorize(n); for(auto p:pf){ int s=(int)res.size(); for(int i=0;i B; for(int i=3;i<10000;i++){ if(er.isprime[i]) B.push_back(i); } int a=B.size(); vector> C(a); rep(i,a){ int j=0; while(C[i].size()<(B[i]+1)/2){ C[i].insert(j*j%B[i]); j++; } } int t; cin>>t; while(t--){ int n; cin>>n; vector A(n); ll cnt=0; rep(i,n){ cin>>A[i]; while(A[i]%2==0){ A[i]/=2; cnt++; } } if(cnt%2==1){ cout<<"No"<