两重for循环,暴力解,没啥好说的

#include <bits/stdc++.h>
using namespace std;

// 判断是否是素数
bool isPrime(int a) {
    if(a == 1 || a == 2) return true;
    for(int i = 2; i * i <= a; i++) {
        if(a % i == 0) {
            return false;
        }
    }
    return true;
}

//查找一个偶数最近的两个素数
void findnearestPrime(int a) {
    if(a % 2 != 0) {
        cout << "Wrong Input" << endl;
        return;
    }
    int minnear = INT_MAX;
    int m,n;//记录此刻的i和j的值
    for(int i = 1; i < a; i++) {
        for(int j = 1; j < a; j++) {
            if(i + j > a) break;//此刻往后i+j都是大于a的,没有在循环的意义了
            if(isPrime(i) && isPrime(j) && (i + j == a)) {
                //确定当前的最小值比之前的小,才记录
                if(minnear > max(i - j, j - i)) {
                    minnear = min(minnear,max(i - j, j - i));
                    m = i;
                    n = j;
                }
            }
        }
    }
    if(minnear == INT_MAX) {
        cout << "Wrong! No Answer!" << endl;
        return;
    }
    cout << m << endl << n;
}


int main()
{
    int n;
    cin >> n;
    findnearestPrime(n);
    return 0;
}