问题描述
在素数的大家庭中,大小之差为 2 的两个素数称之为一对“孪生素数”,如 3 和 5 、 17 和 19 等。请你编程统计出不大于自然数 n 的素数中,孪生素数的对数。
输入格式
一行一个正整数 n,1≤n≤100000 。
输出格式
若干行,每行两个整数,之间用一个空格隔开,从小到大输出每一对孪生素数。
输入数据 1
100
输出数据 1
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
代码
#include<bits/stdc++.h>
using namespace std;
bool zhishu(int n){
if(n<=1)return false;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
return false;
}
}
return true;
}
int main(){
int n;
cin>>n;
bool a,b;
for(int i=2;i<=n-2;i++){
a=zhishu(i);
b=zhishu(i+2);
if(a==true&&b==true){
cout<<i<<" "<<i+2<<endl;
}
}
return 0;
}