c语言输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。
时间: 2024-02-15 08:05:55 浏览: 71
好的,以下是实现代码:
```c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool prime(int m) {
if (m == 1) {
return false;
}
else if (m == 2) {
return true;
}
else {
for (int i = 2; i <= sqrt(m); i++) {
if (m % i == 0) {
return false;
}
}
return true;
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
if (prime(n)) {
printf("YES");
}
else {
printf("NO");
}
return 0;
}
```
我们同样定义了一个`prime(m)`函数来判断一个数是否为素数。如果输入的数是1,那么直接返回false,因为1不是素数。如果输入的数是2,那么直接返回true,因为2是素数。如果输入的数大于2,那么我们用一个循环从2开始到根号m结束,判断m是否能被i整除。如果能被整除,那么返回false,说明m不是素数。如果循环结束后都没有返回false,那么说明m是素数,返回true。
然后我们读入一个正整数n,调用`prime(n)`函数判断n是否为素数。如果是素数,输出"YES",否则输出"NO"。
阅读全文