c语言编写函数,判断从键盘输入的一个正整数是否是素数并给出提示信息。
时间: 2023-12-31 18:10:19 浏览: 35
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int is_prime(int num) {
int i;
if (num < 2) {
return 0;
}
for (i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
if (is_prime(n)) {
printf("%d 是素数\n", n);
} else {
printf("%d 不是素数\n", n);
}
return 0;
}
```
这个函数的思路和 Python 版本一样,从2开始到这个数的一半之间,如果有一个数可以整除这个数,那么这个数就不是素数。如果这个数能被从2到一半之间的所有数都整除不剩余数,那么这个数就是素数。
相关问题
C语言质数判断。从键盘输入一个正整数n,判断n是否为质数。
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int n, flag = 0; // flag为标记变量,初值为0
printf("请输入一个正整数: ");
scanf("%d", &n);
if (n <= 1) {
printf("%d不是质数\n", n);
return 0;
}
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) {
flag = 1; // 若n能被i整除,则标记flag变为1
break;
}
}
if (flag == 0) {
printf("%d是质数\n", n);
} else {
printf("%d不是质数\n", n);
}
return 0;
}
```
代码说明:
1. 首先通过 `scanf()` 函数从键盘输入一个正整数 `n`。
2. 对于小于等于1的数,直接输出不是质数。
3. 利用循环从2开始,逐个判断 `n` 能否被整除。
4. 如果 `n` 能被一个数整除,则说明 `n` 不是质数,将标记 `flag` 置为1,跳出循环。
5. 最后判断标记 `flag` 的值,若为0则说明 `n` 是质数,否则不是质数。
c语言编写一个main函数,输入一个正整数n并判断其是否为素数
下面是一个示例的 `main` 函数,可以输入一个正整数 `n`,并判断它是否为素数:
```
#include <stdio.h>
#include <stdbool.h>
int main(void) {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
// 如果 n 为 2 或 3,则直接输出是素数
if (n == 2 || n == 3) {
printf("%d 是素数\n", n);
return 0;
}
// 如果 n 为 1 或小于 1,则直接输出不是素数
if (n <= 1) {
printf("%d 不是素数\n", n);
return 0;
}
// 如果 n 为偶数,则直接输出不是素数
if (n % 2 == 0) {
printf("%d 不是素数\n", n);
return 0;
}
// 尝试用 3 到 sqrt(n) 之间的奇数来除 n
// 如果能够被整除,则 n 不是素数
bool is_prime = true;
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
printf("%d 是素数\n", n);
} else {
printf("%d 不是素数\n", n);
}
return 0;
}
```
注意:这仅仅是一个简单的示例,并不能保证效率最优。