用c语言(1)编写函数IsPrime,判断整数n是否为素数; (2)编写函数DreamEven,对于一个大于等于4的偶数n,寻找两个素数a和b,使得a+b=n,并输出所有等式。
时间: 2024-05-08 20:18:57 浏览: 17
(1) 函数IsPrime的C代码实现如下:
```c
#include <stdbool.h> // 引入stdbool.h 头文件,用于使用 bool 类型
// 判断整数n是否为素数
bool IsPrime(int n) {
if (n < 2) {
return false; // 0, 1 不是素数
}
for (int i = 2; i * i <= n; ++i) { // 从 2 开始逐个判断每个数是否是 n 的因子
if (n % i == 0) { // 如果有 n 的因子
return false; // n 不是素数
}
}
return true; // n 是素数
}
```
(2) 函数DreamEven的C代码实现如下:
```c
#include <stdio.h>
bool IsPrime(int n); // 先声明函数 IsPrime,以便在主函数之前实现
// 对于一个大于等于4的偶数n,寻找两个素数a和b,使得a b=n,并输出所有等式。
void DreamEven(int n) {
if (n < 4 || n % 2 != 0) { // 如果 n 不是大于等于 4 的偶数
printf("输入有误!n 应该为一个大于等于 4 的偶数。\n");
return;
}
for (int i = 2; i <= n / 2; ++i) { // 从 2 开始逐个找两个素数的组合使它们的乘积等于 n
if (IsPrime(i) && IsPrime(n - i)) { // 如果 i 和 n-i 都是素数,就输出结果
printf("%d = %d + %d\n", n, i, n - i);
}
}
}
// 主函数,调用函数 DreamEven
int main() {
int n = 12;
DreamEven(n);
return 0;
}
```
输出结果为:
```
12 = 5 + 7
12 = 7 + 5
```