信息学奥赛一本通T1403:函数 素数对

【题目描述】两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。【输入】一个正整数n(1≤n≤10000)。【输出】所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。【输入样例】100【输出样例】3 5【源程序】 

信息学奥赛一本通T1403:素数对

【题目描述】

两个相差为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<cmath>
using namespace std;
bool judge(int x);

int main()
{
    int n;
    int i;
    bool flag=true;

    cin>>n;
    for(i=2; i<=n-2; i++) //从2遍历到n-2
        if( judge(i+2) && judge(i) )//若存在素数对则输出
        {
            cout<<i<<" "<<i+2<<endl;;
            flag=false;
        }
    if(flag)//不存在素数对则输出empty
        cout<<"empty"<<endl;
    return 0;
}

bool judge(int x)//判断素数
{
    int i=2;
    for(i=2; i<=sqrt(x); i++)
        if(x%i==0)
            return false;
    return true;
}

 

信息学奥赛一本通T1403:函数 素数对 归属于 函数,更多同类题解源程序见:函数 和 素数对

0 条评论

请先 登录 后评论
不写代码的码农
轩爸

0 篇文章

作家榜 »

  1. admin 2 文章
  2. 张芳 0 文章
  3. hanna 0 文章
  4. Jason 0 文章
  5. lixiaioqian 0 文章
  6. GeraldWrora 0 文章
  7. 董伟 0 文章
  8. 信奥达人 0 文章