写一篇正经点的分享
题目描述
三胞胎素数是指x,y,z满足x<y<z,且三个数都是素数,且相邻两数之差<=4
现在让你求出区间[a,b]中的所有三胞胎素数
样例输入
1 20
样例输出
2 3 5
2 3 7
2 5 7
3 5 7
3 7 11
5 7 11
7 11 13
11 13 17
13 17 19
先别看代码,自己想想,还蛮简单的
$\color{red}{上代码!}$
C++代码
#include<bits/stdc++.h>
using namespace std;
bool prime(int n){
if(n==1) return 0;
for(int i=2;i*i<=n;i++){
if(n%i==0) return 0;
}
return 1;
}
int a[1008611],s=0;
int main(){
int l,r;
cin>>l>>r;
for(int i=l;i<=r;i++){
if(prime(i)) a[++s]=i;
}
for(int i=1;i<=s;i++){
if(a[i+1]&&a[i+2]&&a[i+1]-a[i]<=4&&a[i+2]-a[i+1]<=4) printf("%d %d %d\n",a[i],a[i+1],a[i+2]);
if(a[i+1]&&a[i+3]&&a[i+1]-a[i]<=4&&a[i+3]-a[i+1]<=4) printf("%d %d %d\n",a[i],a[i+1],a[i+3]);
if(a[i+2]&&a[i+3]&&a[i+2]-a[i]<=4&&a[i+3]-a[i+2]<=4) printf("%d %d %d\n",a[i],a[i+2],a[i+3]);
}
return 0;
}