输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。C语言
时间: 2024-05-21 17:12:20 浏览: 20
中判断素数可以使用以下代码段:
#include <stdio.h>
int is_prime(int n) {
if(n <= 1) {
return 0;
}
for(int i=2; i*i<=n; i++) {
if(n%i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
scanf("%d", &n);
for(int i=0; i<n; i++) {
unsigned int x;
scanf("%u", &x);
if(is_prime(x)) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}
这段代码首先定义了一个判断素数的函数is_prime,然后在主函数中读入需要判断的数字,进行判断并输出答案。注意,为了避免溢出,使用时应将需要判断的数字定义为unsigned int类型。
相关问题
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。
这是一个求素数的问题,我可以给你一个简单的代码实现来判断一个数是否为素数:
```python
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
```
其中 `num` 是需要判断的数,函数返回值为布尔值,表示是否为素数。你可以在读入每个需要判断的数后,调用这个函数来判断它是否为素数。
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于1000000 的需要判断的正整数
以下是Python的代码实现:
```python
N = int(input())
for i in range(N):
num = int(input())
if num == 1:
print("No")
elif num == 2 or num == 3:
print("Yes")
else:
for j in range(2, int(num ** 0.5) + 1):
if num % j == 0:
print("No")
break
else:
print("Yes")
```
解释一下:
首先读入需要判断的正整数的个数N,然后用一个for循环读入每个需要判断的正整数num。
如果num等于1,则肯定不是质数,输出“No”。
如果num等于2或3,则肯定是质数,输出“Yes”。
如果num大于等于4,则从2到num的平方根的整数部分(即int(num ** 0.5) + 1)遍历,如果num能被其中任何一个数整除,则num不是质数,输出“No”;否则,num是质数,输出“Yes”。
注意,这里用到了“质数”的定义,即只有1和它本身两个因数的正整数。