说明
给你两个数字a,b判断a*b是否为素数
输入格式
输入第一行是一个整数T(1≤T≤10),表示测试组数。
接下来T行,每一行两个整数a,b(1<=a,b<=1e11)。
输出格式
对于每一行输入,若输入满足a×b是素数,输出一行"YES",否则输出一行"NO"(没有引号)。
样例
输入数据 1
2
126478 12379
1829 22
Copy
输出数据 1
NO
NO
总结反思:
这道题难度不大,可是提交的时候居然没过,就因为输出的答案大小写不对。
以后一定一定要按照题目的要求输出需要输出的答案!!!,答案都对了,没得分就很。。。
//素数只有1与它本身能是它因数,所以a和b中肯定有一个是1,另外一个肯定是素数。
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <vector>
#include <iostream>
#include <string.h>
#include <queue>
using namespace std;
int n;
long long a,b;
int main() {
scanf("%d",&n);
while(n--) {
scanf("%lld%lld",&a,&b);
int k=0;
if(a==1) {
for(int i=2; i<=sqrt(b); i++)
if(b%i==0) {
puts("NO");
k=1;
break;
}
if(k==0)
puts("YES");
} else if(b==1) {
for(int i=2; i<=sqrt(a); i++)
if(a%i==0) {
puts("NO");
k=1;
break;
}
if(k==0)
puts("YES");
} else {
k=1;
puts("NO");
}
}
return 0;
}