66分求助
查看原帖
66分求助
401641
_MJawa_楼主2021/1/31 11:00
#include <bits/stdc++.h>
//#define rint register int
#define ll long long
#define ull unsigned long long
using namespace std;
int t,n,m,nm;
ll a[100010],b[100010];
ll qa,aq;
ull aa=1,bb=1;
bool sk(ull x)
{
	if(x==1||x==9)return false;
	if(x&1==0)return false;
	for(int i=3;i*i<x;i+=2)
	{
		if(x%i==0)return false;
	}
	return true;
}
int main() {
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d%d",&n,&m);
		if(n==0){printf("NO\n");continue;}
		if(m==0)
		{
			for(int i=1;i<=n;i++)
			{
				scanf("%lld",&a[i]);
				if(a[i]!=1){qa++;aq=a[i];}
			}
			if(qa>1||sk((ull)aq)==0) printf("NO\n");
			else printf("YES\n");
			continue;
		}
		for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
		for(int i=1;i<=m;i++)scanf("%lld",&b[i]);
		sort(a+1,a+1+n);sort(b+1,b+1+m);
		for(int i=1;i<=n;i++)
		{
			aa*=a[i];
			if(b[i]!=0)bb*=b[i];
			if(aa%bb==0)
			{
				aa=aa/bb;
				bb=1;
			}
		}
		for(int i=n+1;i<=m;i++)
		{
			bb*=b[i];
			if(aa%bb==0)
			{
				aa=aa/bb;
				bb=1;
			}
		}
		if(bb!=1){printf("NO\n");continue;}
		if(sk(aa)){printf("YES\n");continue;}
		printf("NO\n");continue;
	}
	return 0;
}
2021/1/31 11:00
加载中...