B2132 素数对

题目描述

定义两个相差为 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

#include <bits/stdc++.h>
using namespace std;
bool fun(int i){
    if(i==2)return true;
    int j;
    for(j=2;j<=sqrt(i);){
        if(i%j!=0)j++;
        else break;
    }
    if(i%j==0)return false;
    else return true;
}
int main(){
    int n;
    cin>>n;
    int p=1;
    for(int i=2;i<=n-2;i++){
        if(fun(i)&&fun(i+2)){
            cout<<i<<" "<<i+2<<endl;
            p=0;
        }
    }
    if(p==1)cout<<"empty";
    return 0;
}

求求了!点赞关注加收藏!

Logo

集算法之大成!助力oier实现梦想!

更多推荐