列表

详情


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")

上一题