HDOJ 1431-素数回文【删除大量无关数据】
2016-04-04 11:31
218 查看
素数回文
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 16454 Accepted Submission(s): 3667
[align=left]Problem Description[/align]
xiaoou33对既是素数又是回文的数特别感兴趣。比如说151既是素数又是个回文。现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数。(5 <= a < b <= 100,000,000);
[align=left]Input[/align]
这里有许多组数据,每组包括两组数据a跟b。
[align=left]Output[/align]
对每一组数据,按从小到大输出a,b之间所有满足条件的素数回文数(包括a跟b)每组数据之后空一行。
[align=left]Sample Input[/align]
5 500
[align=left]Sample Output[/align]
5 7 11 101 131 151 181 191 313 353 373 383
[align=left]Author[/align]
xiaoou333
[align=left]Source[/align]
zjut
#include<stdio.h> bool is[9989900]; int prime[1000]; void set() { int i,j; i=2; for(j=i*i;j<=9989899;j+=i) //偶数 is[j]=true; for(i=3;i<=3163;i=i+2) { if(is[i]) continue; for(j=i*i;j<=9989899;j+=i) is[j]=true; } } bool test(int a) { int temp=a; int b=0; while(temp!=0) { b=b*10; b+=temp%10; temp/=10; } return a==b; } int main() { int a,b; int i,k=0; set(); for(i=5;i<=9989899;i+=2) if(!is[i]&&test(i)) prime[k++]=i; while(~scanf("%d %d",&a,&b)) { for(i=0;i<k;i++) { if(prime[i]<a) continue; else if(prime[i]<=b) printf("%d\n",prime[i]); else break; } printf("\n"); } return 0; }
相关文章推荐
- 共同学习Java源码--常用数据类型--String(八)
- 赶集网mysql开发36军规
- spring笔记
- Android:自定义标题栏
- 设计模式C++迭代器模式
- matlab图像边缘检测
- High Performance之android高性能之路
- spring整合和事物策略
- IT忍者神龟之 oracle行转列、列转行
- 在APP中两个业务都需要支付,但一个ping++应用只有一个webhook
- C++ 类对象的内存分配
- js设计模式-享元模式
- volatile
- Tiny4412 开发板 编译环境搭建
- Building Telephony Systems With OpenSIPS---Introduction to SIP
- DOS命令详解
- Java安全通信:HTTPS与SSL
- 剑指offer-面试题28:字符串的排列
- x86汇编--(五)定位内存+栈的巧妙应用 温故知新
- hdu 1030 Delta-wave