已经改了很多次了,很多hack都过的了就是错第四个点,求助大佬qwq
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t,n,a[5000005],z[500005],k;
bool b[5000005],bj;
map<ll,bool> c;
void inti()
{
for(int i=2;i<=20000;i++)
{
if(b[i]==0)
{
z[++k]=i;
for(int j=i+i;j<=100005;j+=i)
b[j]=true;
}
}
}
int main()
{
cin>>t;
inti();
for(int i=1;i<=t;i++)
{
cin>>n;
for(int j=1;j<=n;j++)cin>>a[j];
if(n==2)cout<<"Yes"<<endl;
else
{
for(int j=1;j<=n;j++)
{
for(int l=1;z[l]*z[l]<=a[j];l++)
{
if(a[j]%z[l]==0)
{
if(!c[z[l]])c[z[l]]=true;
else
{
bj=true;
break;
}
if(!c[a[j]/z[l]])c[a[j]/z[l]]=true;
else
{
bj=true;
break;
}
}
}
if(!c[a[j]])c[a[j]]=true;
else bj=true;
if(bj==true)break;
}
if(bj==true)
{
cout<<"No"<<endl;
bj=false;
}
else cout<<"Yes"<<endl;
}
c.clear();
}
return 0;
}