c给定一个数,判断他是质数还是合数,质数输出yes,合数输出no
时间: 2024-10-21 08:11:57 浏览: 12
输入一个正整数,判断是不是素数(C++)
在C语言中,判断一个数是否为质数的过程通常涉及以下几个步骤:
1. 定义函数:首先,你可以创建一个名为`isPrime`的函数,接受一个整数作为输入。
```c
#include <stdbool.h>
bool isPrime(int num) {
```
2. 质数条件:质数是指大于1的自然数,除了1和它本身以外不再有其他因数。所以,对于小于等于1的数字(包括1),以及能被2整除的偶数,直接返回`false`,因为它们不是质数。
```c
if (num <= 1 || (num > 2 && num % 2 == 0)) {
return false;
}
```
3. 遍历检查:从3开始到sqrt(num),如果num能被其中任何一个数整除,那么它是合数,返回`false`;否则,说明它是质数,返回`true`。
```c
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return false;
}
}
```
4. 结束函数并处理边界情况:如果循环结束都没有找到因子,那么num就是质数,再次返回`true`。
```c
return true;
}
```
完整代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
#include <math.h> // 引入sqrt函数
bool isPrime(int num);
int main() {
int number;
printf("请输入一个整数:");
scanf("%d", &number);
if (isPrime(number)) {
printf("yes\n");
} else {
printf("no\n");
}
return 0;
}
bool isPrime(int num) {
if (num <= 1 || (num > 2 && num % 2 == 0)) {
return false;
}
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
```
阅读全文