两个相差为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
代码:
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 int ss(int x)//判断x是不是素数,是返回1,不是返回0 5 { 6 int f=1; 7 for(int i=2;i<=sqrt(x);i++) 8 { 9 if(x%i==0) 10 { 11 f=0; 12 break; 13 } 14 } 15 return f; 16 } 17 main() 18 { 19 int a,f=0; 20 cin>>a; 21 for(int i=3;i<=a-2;i=i+2) 22 { 23 if(ss(i)==1&&ss(i+2)==1) 24 { 25 f=1; 26 cout<<i<<" "<<i+2<<endl; 27 } 28 } 29 if(f==0) 30 { 31 cout<<"empty"; 32 } 33 }