#include<bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
if(x <= 1) return false;
//if(x == 2) return true;
for(int i = 2; i <= sqrt(x); i++) {
if (x % i == 0)
return false;
}
return true;
}
int main() {
int n;
cin >> n;
if(isPrime(n) && isPrime(n - 6)) {
cout << "Yes" << endl;
cout << n - 6 << endl;
return 0;
}
else if(isPrime(n) && isPrime(n + 6)) {
cout << "Yes" << endl;
cout << n + 6 << endl;
return 0;
}
else {
cout << "No" << endl;
for(int i = n + 1;;i++) {
if((isPrime(i) && isPrime(i + 6)) || (isPrime(i) && isPrime(i - 6))) {
cout << i << endl;
return 0;
}
}
}
return 0;
}
总结:
简单模拟,不知道为什么分类讨论6以前的好像不大行?