首页 > 代码库 > 1.12.10
1.12.10
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<cstdio> 2 #include<cmath> 3 using namespace std; 4 void su(int); 5 int main() 6 { 7 int n; 8 scanf("%d",&n); 9 su(n); 10 return 0; 11 } 12 void su(int n) 13 { 14 bool l=0,s=0,k=0,x1=0,x2=0,p,h1=0,h2=0; 15 int x,y; 16 for(int i=2;i<=n;i++) 17 { 18 k=0,s=0; 19 if(i==2) 20 { 21 x==i; 22 s=1; 23 x1=1; 24 continue; 25 } 26 for(int j=2;j<=sqrt(i);j++) 27 { 28 if(i%j==0) 29 { 30 k=1; 31 break; 32 } 33 } 34 if(k==0&&x1==0) 35 { 36 x=i;x1=1;s=0; 37 } 38 else 39 if(k==0&&x2==0) 40 { 41 y=i;x2=1;s=1; 42 } 43 else 44 if(k==0&&x1==1&&x2==1) 45 { 46 p=x; 47 x=y; 48 y=i; 49 s=1; 50 } 51 if(x1==1&&x2==1&&y-x==2&&s==1) 52 { 53 printf("%d %d\n",x,y);l=1; 54 } 55 } 56 if(l==0) 57 printf("empty"); 58 }
1.12.10
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。