输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。 输入样例: 2 11 111 输出样例: Yes No
时间: 2024-12-17 13:36:48 浏览: 25
为了实现这个程序,你可以使用C语言编写一个循环,逐个检查给定的正整数是否为素数。下面是相应的代码:
```c
#include <stdio.h>
// 判断是否为素数的辅助函数
int is_prime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) { // 只需检查到 num 的平方根即可
if (num % i == 0)
return 0;
}
return 1;
}
int main() {
int N;
scanf("%d", &N); // 输入正整数N
for (int i = 0; i < N; i++) {
int num;
scanf("%d", &num); // 输入需要判断的正整数
if (is_prime(num)) {
printf("Yes\n");
} else {
printf("No\n");
}
}
return 0;
}
```
在这个代码中,`is_prime` 函数用于检查一个数是否为素数,通过从2开始遍历到该数的平方根,看是否有能整除它的因子。如果是素数则返回1,否则返回0。主函数`main`读取输入,然后调用 `is_prime` 来确定并打印结果。
相关问题
输入在第一行给出一个正整数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和它本身两个因数的正整数。
阅读全文