Description


给定一个数字 A,这个 A 由 a1,a2,⋯,aN相乘得到。
给定一个数字 B,这个 B 由 b1,b2,⋯,bM相乘得到。

如果 A/B 是一个质数,请输出YES,否则输出NO。

Input


每个测试点包含多组数据,第一行读入一个整数 TTT 表示数据组数,对于每组数据:

第一行输入两个整数 N,M ,分别表示 A 由 N 个数字相乘得到, B 由 M 个数字相乘得到。

第二行输入 N 个整数,分别表示组成 A 的 N 个数字。

第三行输入 M 个整数,分别表示组成 B 的 M 个数字。

保证对于一个数字,其在 bi​ 中出现的次数不多于在 ai​ 中出现的次数。

Output


对于每组数据:

如果 A/B​ 是一个质数,请输出YES,否则输出NO。

在输出YES或NO后输出一个换行符。

Sample Input


2
3 2
5 7 7
5 7
4 2
5 7 7 7
5 7

Sample Output


YES
NO

Hint


1≤M≤N≤1000001

1≤ai,bi≤10121

1≤T≤10

∑N≤100000

题解


划重点:

保证对于一个数字,其在 bi​ 中出现的次数不多于在 ai​ 中出现的次数。

也就是说 在把相同的构成数约掉之后,分母会约到一

于是此题约掉相同因子后转化为

给 n - m 个正整数 ai ( 1 < = i < = n - m , 1 < = ai < = 1 e 12 ) 求这些数乘起来是否为质数

然后xjb乱搞不是随随便便!!!(完结撒花

设k=n-m,遍历a数组,如果一个数既满足是约剩下的,又值为1的话,k–(表示有用的数又少了一个!(撒花

最后如果k==1,表示恰好剩下了一个有用的数,那么判断这个有用的数是否为质数 是输出yes否输出no

否则 如果k==0 也就是说分子和分母一样 也就是说A/B==1 且1不是质数 所以输出no

而k>=2时,显然分子由k个非零且非一的数乘起来,那还质数个毛线啊质,输出no

/考场代码 思路不清晰 凑合看

#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define R register
long long a[100007];
long long b[100007];
/*
inline long long read()
{
char ch=getchar();
long long x=0;bool s=1;
while(ch<'0'||ch>'9'){if(ch=='-')s=0;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return s?x:-x;
}
*/
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m;
scanf("%d%d",&n,&m);
for(R int i=1;i<=n;++i)
scanf("%lld",&a[i]);
sort(a+1,a+n+1);
for(R int i=1;i<=m;++i)
scanf("%lld",&b[i]);
sort(b+1,b+m+1);
if(n-m==0){cout<<"NO"<<endl;}
else
{
int i=1,j=1;
while(a[i]==1)++i;
while(b[j]==1)++j;
int k=n-m-i+j;
if(k!=1){cout<<"NO"<<endl;}
//else if(k==0){cout<<"YES"<<endl;}
else
{
while(a[i]==b[j])++i,++j;
long long x=a[i],flag=0;
//cout<<x<<endl;
for(long long i=2;i<=sqrt(x)&&!flag;++i)
if(x%i==0)flag++;
if(!flag)
cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
}
return 0;
}

最新文章

  1. Excel—TEXT函数功能详解
  2. 【TortoiseGit】TortoiseGit将本地库push到远端
  3. 浅谈网站web框架的本质
  4. JDBC连接数据库演示案例
  5. 彻底理解JavaScript原型
  6. git 最常用命令
  7. AspNet Identity and IoC Container Registration
  8. Redis-cluster集群【第二篇】:redis持久化
  9. Golang gopath
  10. bigworld源码分析(5)——BaseApp分析
  11. SQLserver批量删除空表
  12. No ResultSet was produced
  13. AD10 怎样精确导入CAD 文件
  14. 加上固件密码,Mac更安全
  15. java基础- Collection和map
  16. 异常:System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms FIPS信息标准限值了MD5加密
  17. Electron 项目在 Mac 下复制和粘贴快捷键失效的解决办法
  18. MarkDown语法总结
  19. 审核被拒Guideline 2.1 - Information Needed we are unable to find 账号登录 option
  20. [程序员的业余生活]一周读完《高效能人士的七个习惯》Day1:这是不是一碗鸡汤?

热门文章

  1. 八皇后问题Python实现
  2. jquery的固定定位效果
  3. 关于Properties 集 添加数据 遍历数据
  4. Java截取视频首帧并旋转正向
  5. gdb源码安装,指定使用的python版本
  6. keras常见问题解答
  7. OC - 读歌词
  8. BUPT 2012复试机考 2T
  9. 在windows中增加linux命令
  10. require.js结合项目的使用心得