求助!
第31行出了问题,但一直找不出错
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[100001],b[100001],s[100001];
int t,n,m,i,j,k,x,y;
bool cmp(int a,int b){ return a>b; }
bool pd(int x)
{
for(int i=2;1LL*i*i<=x;i++)
if(x%i==0)return 0;
return 1;
}
signed main()
{
scanf("%lld",&t);
while(t--)
{
scanf("%lld%lld",&n,&m);k=0;
for(i=1;i<=n;i++) scanf("%lld",&a[i]);
sort(a+1,a+n+1);
for(i=1;i<=m;i++) scanf("%lld",&b[i]);
sort(b+1,b+m+1);j=1;
for(i=1;i<=n;i++)
{
if(a[i]==b[j])j++;
else s[++k]=a[i];
}//去重
sort(s+1,s+k+1,cmp);
for(i=k;i>0;i--)
if(s[i]==1)k--;//去1
if(!k)puts("NO");//这里!!
if(k==1)
{
if(pd(s[1]))puts("YES");
else puts("NO");
}
if(k>1)puts("NO");
}
return 0;
}