c语言输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。
时间: 2024-02-15 12:06:13 浏览: 21
以下是实现该功能的完整代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool prime(int m)
{
if (m == 1) {
return false;
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return false;
}
}
return true;
}
int main()
{
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
if (prime(n)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
首先定义了一个函数 `prime`,它的功能是判断一个正整数 m 是否为素数。如果 m 等于 1,直接返回 false。否则进行循环判断,如果存在一个数 i 能够整除 m,那么 m 就不是素数,返回 false。如果循环结束后没有返回 false,说明 m 是素数,返回 true。
在 `main` 函数中,先读入一个正整数 n,然后调用 `prime` 函数判断 n 是否是素数,如果是,输出 "YES",否则输出 "NO"。
相关问题
C语言输入一个正整数 n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1 和自身整除的正整数,1 不是素数,2 是素数)。 要求定义并调用函数 prime(m)判断m 是否为素数。
```c
#include <stdio.h>
int prime(int m) {
if (m < 2) {
return 0;
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
scanf("%d", &n);
if (prime(n)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
C语言:向程序输入一个正整数,请你判断该正整数是否是素数,如果是,则输出 Yes,否则输出 No
素数的定义是只能被1和自身整除的数,因此判断一个数是否为素数,只需要从2到该数的平方根之间的所有整数去除该数,如果都不能整除,则该数为素数。
C语言代码如下:
```c
#include <stdio.h>
#include <math.h> // 需要使用sqrt函数
int main() {
int n, i;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n <= 1) { // 特判小于等于1的数不是素数
printf("No\n");
return 0;
}
int sqrtn = sqrt(n);
for (i = 2; i <= sqrtn; i++) {
if (n % i == 0) { // 如果能整除,则不是素数
printf("No\n");
return 0;
}
}
printf("Yes\n"); // 如果不能整除,则是素数
return 0;
}
```