键盘输入一个正整数,要求判断该数是否为素数。素数即质数,只能被1和它本身整除。特别说明,1不是素数。如果是素数,输出“YES”,否则输出“NO”。 输入格式: 输入只有一个用例,即一个整数n。 输出格式: 如果n是素数,输出“YES”,否则输出“NO”。
时间: 2024-10-19 12:08:01 浏览: 95
3_判断素数_yes_
要编写一个C程序来判断一个给定的正整数是否为素数,你可以使用以下步骤:
1. 首先,我们需要定义一个函数 `is_prime`,它接受一个整数参数 `n`。
2. 检查输入的数 `n` 是否小于 2,因为根据素数定义,所有大于 1 的自然数中,除了 2 以外的偶数都不是素数(2 是唯一的偶数素数)。
3. 使用一个循环从 2 开始,一直检查到 `sqrt(n)`(因为不需要检查大于 n/sqrt(n) 的数,它们肯定不会整除 n),如果在这个范围内有能整除 `n` 的数,那么 `n` 不是素数。
4. 如果没有找到能整除 `n` 的数,则返回 `n` 是素数。
下面是对应的 C 代码实现:
```c
#include <stdio.h>
#include <math.h>
// 判断一个数是否为素数的函数
int is_prime(int n) {
if (n <= 1) {
return 0; // 1 不是素数
}
if (n == 2) {
return 1; // 2 是素数
}
if (n % 2 == 0) {
return 0; // 偶数不是素数(除了 2)
}
for (int i = 3; i <= sqrt(n); i += 2) { // 只检查奇数
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
if (is_prime(n)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
阅读全文