1099 性感素数 (20 分)
- 首先写一个判断素数的函数,判断一个数是不是素数,只需要判断前根号n个数即可。
判断素数的代码:
bool su(int n){
if (n <= 1) {
return false;
}
for (int i = 2; i <= (int)sqrt(n); i++){
if (n % i == 0){
return false;
}
}
return true;
}
有了这个只需要按照题意进行模拟即可
- 如果是n性感素数,说明n是素数,并且n - 6或者n+ 6是素数。
- 如果n - 6 是素数,直接输出Yes,n - 6
- 如果n + 6 是素数,直接输出Yes, n + 6
- 如果n不是性感素数,就从n + 1开始遍历,直到找到第一个性感素数,输出即可。
C++代码:
#include<bits/stdc++.h>
using namespace std;
bool su(int n){
if (n <= 1) {
return false;
}
for (int i = 2; i <= (int)sqrt(n); i++){
if (n % i == 0){
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
if (su(n) && (su(n - 6) || su(n + 6))){
cout << "Yes" << endl;
if (su(n - 6)){
cout << n - 6;
} else {
cout << n + 6;
}
} else {
cout << "No" << endl;
for(int i = n + 1; ; i++){
if (su(i) && (su(i + 6) || su(i - 6))){
cout << i;
break;
}
}
}
return 0;
}
- 喜欢的话可以点个赞哦