题目描述
定义两个相差为 2 的素数称为素数对,如 5 和 7,17 和 19 等,要求找出所有两个数均不大于 n 的素数对。
输入格式
一个正整数 n。1≤n≤10000。
输出格式
所有小于等于 n 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出 empty。
输入输出样例
输入 #1复制
10
输出 #1复制
3 5
5 7
输入 #2复制
100
输出 #2复制
3 5
5 7
11 13
17 19
29 31
41 43
59 61
71 73
输入 #3复制
3
输出 #3复制
empty
代码
cpp
#include<bits/stdc++.h>
using namespace std;
bool f(int n){
for(int i=2;i<n;i++){
if(n%i==0){
return false;
}
}
return true;
}
int main(){
int n,sum=0;
cin>>n;
for(int i=2;i<=n;i++){
if(f(i)==1&&f(i+2)==1&&i+2<=n){
sum++;
cout<<i<<" "<<i+2<<endl;
}
}
if(sum=0){
cout<<"empty";
}
return 0;
}