为什么这个代码全RE爆零啊
#include<bits/stdc++.h>
#define Code using
#define by namespace
#define wjb std
Code by wjb;
int t,a[30][500010],b[100000010],maxx=INT_MIN;
bool f[100000010];
int x(int n)
{
for(int i=1;i<=n;i++)b[i]=i;
for(int i=2;i<=n;i++)
if(b[i]==i)
for(int j=1;i*j<=n;j++)b[i*j]=i;
}
int main()
{
cin>>t;
for(int u=1;u<=t;u++)
{
cin>>a[u][0];
for(int i=1;i<=a[u][0];i++)cin>>a[u][i],maxx=max(maxx,a[u][i]);
}
x(maxx);
for(int u=1;u<=t;u++)
{
memset(f,false,sizeof(f));
bool ff=true;
for(int i=1;i<=a[u][0];i++)
if(ff)
{
if(f[b[a[u][i]]])ff=false;
f[b[a[u][i]]]=true;
}
if(!ff)cout<<"No\n";
else cout<<"Yes\n";
}
return 0;
}