A1034. 孪生素数对
来源:互联网 发布:2017年旅游大数据分析 编辑:程序博客网 时间:2024/05/18 01:14
问题描述
差为2的两个素数被称为孪生素数对,例如3和5, 11和13.
给定一个区间,请输出区间内所有的孪生素数对.
给定一个区间,请输出区间内所有的孪生素数对.
输入格式
两个正整数a,b,其中a<b,以空格分开
输出格式
区间[a,b]内的所有孪生素数对,按从小到大顺序。每行一个素数对,其中小的在前,大的在后,以空格分开。
如果区间内没有素数对的话,输出-1.
如果区间内没有素数对的话,输出-1.
样例输入
2 15
样例输出
3 5
5 7
11 13
5 7
11 13
样例输入
14 18
样例输出
-1
思路:
用筛选法只得80分,也通过不了。。无语了,看了别人写的一个都没用到数组,好强大!
自己代码:
#include <stdio.h>#include <math.h>main(){int i,j,a,b,x[10001]={0},flag=1,k=0;scanf("%d%d",&a,&b);for (i=2;i<=10000;i++) x[i]=i;for (i=2;i<=sqrt(10000);i++){if (x[i]!=0)for (j=2*i;j<=10000;j=j+i) x[j]=0;}for (i=0;i<=10000;i++)if (x[i]!=0)x[k++]=x[i];for (i=a;i<=b;i++){for (j=0;j<k;j++){if (i==x[j]&&x[j]+2==x[j+1]){flag=0;printf("%d %d\n",x[j],x[j+1]); }}}if (flag)printf("-1");}
好代码:
从a到b将每个数调用函数判断是否是素数在将这个数+2的到的数,判断其是否是素数。
#include"stdio.h"int zs(int n){ int i; if(n<2) return 0; for(i=2;i*i<=n;i++) if(n%i==0) return 0; return 1;}int main(){ int a,b,flag=1; scanf("%d %d",&a,&b); for(;a+2<=b;a++) if(zs(a)&&zs(a+2)) flag=0,printf("%d %d\n",a,a+2); if(flag) printf("-1\n"); return 0;}
0 0
- A1034. 孪生素数对
- Tsinsen 清橙 A1034. 孪生素数对
- 刷清橙OJ--A1034.孪生素数对
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- 孪生素数
- android 手机加速度传感器的问题
- 关于OC的autorelease
- 20命令模式
- 关于ios7 使用 GDataXml 解析 xml 数据的问题。
- asp.net 控件赋值的问题
- A1034. 孪生素数对
- webview调取相机
- 21访问者模式
- java中接口内的匿名内部类
- 22责任链模式
- Android Textview 点击之后更换背景 保持不变
- Python抢火车票成功后发送邮件
- 聊天界面返回到聊天列表如何设计
- uinavigationcontroller导航获取上级view出现unrecognized selector错误