NC227310. 爱吃素
描述
输入描述
输入第一行是一个整数,表示测试组数。
接下来行,每一行两个整数。
输出描述
对于每一行输入,若输入满足是素数,输出一行"YES",否则输出一行"NO"(没有引号)。
示例1
输入:
3 2 3 1 7 1 4
输出:
NO YES NO
C++ 解法, 执行用时: 10ms, 内存消耗: 400K, 提交时间: 2022-04-05 15:08:00
#include<bits/stdc++.h> using namespace std; typedef long long LL; int main() { LL n,a,b,c,i; cin>>n; while(n--) { cin>>a>>b; c=a*b; if(c==1) printf("NO\n"); else { for(i=2;i<=sqrt(c);i++) { if(c%i==0) break; } if(i>sqrt(c)) printf("YES\n"); else printf("NO\n"); } } }
C 解法, 执行用时: 7ms, 内存消耗: 424K, 提交时间: 2022-04-02 10:34:45
#include<stdio.h> #include<math.h> int main() { long long a,b,c; int t,j; scanf("%d",&t); for(int i=0;i<t;i++){ scanf("%lld %lld",&a,&b); c=a*b; for(j=2;j<=sqrt(c);j++){ if(c%j==0){ break; } } if(c!=1&&j>sqrt(c)) printf("YES\n"); else printf("NO\n"); } return 0; }
Python3 解法, 执行用时: 105ms, 内存消耗: 7088K, 提交时间: 2021-09-22 13:09:53
def isprime(n): if n < 2: return False i = 2 while i*i<=n: if n%i==0: return False i+=1 return True t = int(input()) for i in range(t): a,b = map(int,input().split(" ")) if isprime(a*b):print("YES") else:print("NO")