用c语言编写一个递归函数isPrime,该函数用于判断给定的输入是否为素数。请在程序中实现此函数。
时间: 2024-11-15 08:34:47 浏览: 17
当然可以。在C语言中,你可以编写如下的递归函数isPrime来判断一个整数是否为素数:
```c
#include <stdbool.h> // 引入bool类型
// 定义isPrime函数
bool isPrime(int n) {
// 素数的基础情况
if (n <= 1) {
return false; // 小于等于1的数字不是素数
} else if (n == 2) {
return true; // 2是最小的素数
} else if (n % 2 == 0) { // 如果能被2整除,除了2以外的偶数都不是素数
return false;
}
// 递归情况:检查n是否能被大于2且小于√n的奇数整除
for (int i = 3; i * i <= n; i += 2) { // 只需要检查到√n即可,因为如果n有因子i,则一定也有因子(n - i)
if (n % i == 0) {
return false; // 如果找到因子,说明n不是素数
}
}
return true; // 没有找到因子,n是素数
}
// 示例用法
int main() {
int num = 7;
if (isPrime(num)) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
```
阅读全文