题解 | #查找组成一个偶数最接近的两个素数#
查找组成一个偶数最接近的两个素数
https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9?tpId=37&tqId=21283&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=
#include <iostream> using namespace std; int prime_num(int n) { //判别一个数是否为素数(对大于2的素数有效) int count = 0; for (int j = 2; j < n; j++) { if (n % j == 0) { ++count; break; } } if (count == 0) { return 1; } else { return 0; } } int main() { int a; cin >> a; int b = a / 2; if (a == 4) { //先将4排除,因为4是唯一一个由两个素数2相加而成的数 cout << 2 << endl; cout << 2 << endl; } else { for (int i = b; i > 0; i--) { //从a/2开始遍历素数 if (prime_num(i) == 1 && prime_num(a - i) == 1) { //需同时满足i和20-i都是素数 cout << i << endl; cout << a - i << endl; break; //由于只输出一组,所以需要跳出循环 } } } }