【题目描述】
两个相差为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 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!