10:素数对
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
两个相差为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<cstdio> 3 #include<cstdlib> 4 using namespace std; 5 int b[10001]; 6 int now; 7 int n; 8 void find(int a) 9 { 10 for(int i=3;i<=a;i++) 11 { 12 for(int j=2;j<i;j++) 13 { 14 if(i%j==0) 15 break; 16 else if(j==i-1&&i%j!=0) 17 { 18 b[now]=i; 19 now++; 20 break; 21 } 22 } 23 } 24 for(int i=0;i<now;i++) 25 { 26 if(b[i+1]-b[i]==2) 27 { 28 cout<<b[i]<<" "<<b[i+1]; 29 cout<<endl; 30 } 31 } 32 } 33 int main() 34 { 35 36 cin>>n; 37 if(n<5)cout<<"empty"; 38 else 39 find(n); 40 return 0; 41 }