用C++语言,输入一个正整数,判断是否可以写成两个素数之和,并输出所有的素数组合
时间: 2024-05-06 10:20:41 浏览: 89
输入一个正整数,判断是不是素数(C++)
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n < 4) {
printf("无法写成两个素数之和\n");
return 0;
}
printf("%d可以写成以下素数之和:\n", n);
for (int i = 2; i <= n / 2; i++) {
if (isPrime(i) && isPrime(n - i)) {
printf("%d + %d = %d\n", i, n - i, n);
}
}
return 0;
}
```
说明:
1. 定义了一个函数 `isPrime`,用于判断一个数是否为素数。
2. 输入一个正整数 n,如果 n 小于 4,则无法写成两个素数之和,直接输出提示信息。
3. 遍历 2 到 n/2 的所有数,如果 i 和 n-i 都是素数,则输出它们的和和 n。
4. 程序结束。
阅读全文