没有啥难度,关键在于判断素数。
#include <cmath>
#include <iostream>
#include <limits.h>
using namespace std;
// 判断一个数是否是素数
bool isPrime(int m) {
for (int i = 2; i <= sqrt(m); i++) {
if (m % i == 0) return false;
}
return true;
}
int main() {
int n = 0;
cin >> n;
int dis = INT_MAX;
int num1 = 0, num2 = 0;
for (int i = 2; i <= n / 2; i++) {
int j = n - i;
if (isPrime(i) && isPrime(j)) {
if (dis > j - i) {
dis = j - i;
num1 = i;
num2 = j;
}
else continue;
}
}
cout << num1 << endl << num2 << endl;
return 0;
}

京公网安备 11010502036488号