性感素数
题目传送门
题目描述
“性感素数 ”是指形如 $(p,p+6)$ 这样的一对素数。
之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。
现给定一个整数,请你判断其是否为一个性感素数。
输入格式
输入在一行中给出一个正整数 $N$。
输出格式
若 $N$ 是一个性感素数,则在一行中输出 Yes
,并在第二行输出与 $N$
配对的另一个性感素数(若这样的数不唯一,输出较小的那个)。
若 $N$ 不是性感素数,则在一行中输出 No
,然后在第二行输出大于 $N$ 的最小性感素数。
数据范围
$1≤N≤10^8$
样例
输入样例1:
47
输出样例1:
Yes
41
输入样例2:
21
输出样例2:
No
23
思路
-
首先写一个判断素数的函数,判断一个数是不是素数,只需要判断前根号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;
}
az
求赞qwq
有什么性质要挖掘吧
nnd,为啥直接暴力就行
没性质 不会超时 就是一个暴力题
yes
赞
谢谢~
非常不容易点赞了
谢谢大佬~
赞数一下子就上去了~
OOOOOOOOOOOOOOOOOOOOOOOOOOOOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
OrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrzOrz
stOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstOstO
今天写这个题解的好多欸~
az