难度:4-
题目描述
任一个大于等于4的偶数都可以拆分为两个素数之和。 (5.1.40)
输入格式
一个整数n( 4 <= n <= 200 )
输出格式
将小于等于n的偶数拆分为2个质数之和,列出所有方案!
输入数据 1
10
输出数据 1
4=2+2
6=3+3
8=3+5
10=3+7
10=5+5
代码:
#include <iostream>
using namespace std;
// 判断一个数是否为素数
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return false;
}
return true;
}
int main() {
int n;
cin >> n;
for (int even = 4; even <= n; even += 2) {
for (int i = 2; i <= even / 2; ++i) {
if (isPrime(i) && isPrime(even - i)) {
cout << even << "=" << i << "+" << even - i << endl;
}
}
}
return 0;
}