总时间限制: 1000ms 内存限制: 65536kB
描述
两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。
输入
一个正整数n。1 <= n <= 10000。
输出
所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。
样例输入
100
样例输出
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
#include<iostream>
#include<cstring>
#include<string>
#include<math.h>
using namespace std;
bool isPrime(int a){
if(a==1)
return false;
if(a==2||a==3)
return true;
for(int i=2;i<=sqrt(a);i++){
if(a%i==0)
return false;
}
return true;
}
int main(){
int n;
cin>>n;
bool flag=false;
for(int i=3;i<=n;i++){
if(isPrime(i-2)&&isPrime(i)){
flag=true;
cout<<i-2<<' '<<i<<endl;
}
}
if(flag==false)
cout<<"empty";
return 0;
}
来源:CSDN
作者:继续人生理想
链接:https://blog.csdn.net/weixin_44437496/article/details/104108520