Karl 刚学到了哥德巴赫猜想——任意一个大于 2 2 的偶数都能写成两个质数的和。对于这个猜想 Karl 不太相信,于是打算写一个程序,试着找出任意一个正整数满足要求的拆分数,例如: 16 16 的拆分数为 4 4,因为: 16 = 3 + 13 16=3+13 16 = 5 + 11 16=5+11 16 = 11 + 5 16=11+5 16 = 13 + 3 16=13+3 请你帮助 Karl 写一个程序c++
时间: 2023-05-17 16:05:36 浏览: 168
c++验证哥德巴赫猜想
以下是一个简单的 C 语言程序,可以找出任意一个正整数满足哥德巴赫猜想的拆分数:
```c
#include <stdio.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个大于 2 的偶数:");
scanf("%d", &n);
if (n <= 2 || n % 2 != 0) {
printf("输入错误!\n");
return 0;
}
for (int i = 2; i <= n / 2; i++) {
if (is_prime(i) && is_prime(n - i)) {
printf("%d = %d + %d\n", n, i, n - i);
break;
}
}
return 0;
}
```
这个程序首先会让用户输入一个大于 2 的偶数,然后通过遍历 2 到 n/2 的所有正整数,找出两个质数的和等于 n 的情况,并输出结果。其中,is_prime 函数用于判断一个数是否为质数。
阅读全文