题目较简单,就是判断一个数num是否是性感素数只要三步
- num是否是素数
- num+6是否是素数,是就返回num-6
- num-6是否是素数,是就返回num+6
先开始判断一下,如果不是性感素数就用while循环让num不断+1,直到找到性感素数为止。
#include<bits/stdc++.h>
using namespace std;
int N;
bool judge(int num) {
if (num < 2) return false;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0)return false;
}
return true;
}
//获取匹配的性感素数,没有就返回-1
int getSex(int num) {
if (!judge(num))return -1;
if (judge(num - 6))return num - 6;
if (judge(num + 6))return num + 6;
return -1;
}
int main()
{
cin >> N;
if (getSex(N) != -1) {
cout << "Yes" << endl;
cout << getSex(N) << endl;
return 0;
}
cout << "No" << endl;
while (N++) {
if (judge(N)) {
if (getSex(N) != -1) {
cout << N << endl;
return 0;
}
}
}
return 0;
}