HDU 1431 素数回文(打表)
2016-02-01 19:32
429 查看
素数回文 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16056 Accepted Submission(s): 3564 Problem Description xiaoou33对既是素数又是回文的数特别感兴趣。比如说151既是素数又是个回文。现在xiaoou333想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数。(5 <= a < b <= 100,000,000); Input 这里有许多组数据,每组包括两组数据a跟b。 Output 对每一组数据,按从小到大输出a,b之间所有满足条件的素数回文数(包括a跟b)每组数据之后空一行。 Sample Input 5 500 Sample Output 5 7 11 101 131 151 181 191 313 353 373 383 Author xiaoou333 Source zjut |
#include <stdio.h> #include <stdio.h> using namespace std; bool a[9989900]; int prime[1005]; void set() { int i,j; for(i = 2; i<=9989899; i+=2) a[i] = true; for(i = 3; i<=3161; i++){ if(a[i]) continue; for(j = i+i; j<=9989899; j+=i) a[j] = true; } } int huiwen(int n) { int a = 0,b = n; int r; while(b){ r = b%10; a = a*10+r; b/=10; } if(a == n) return 1; return 0; } int main() { int n,m,i,k = 2; set(); prime[0] = 5; prime[1] = 7; for(i = 11; i<=9989899; i+=2){ if(!a[i] && huiwen(i)) prime[k++] = i; } while(~scanf("%d%d",&n,&m)){ for(i = 0; i<k; i++){ if(prime[i]<n) continue; else if(prime[i]>m) break; else printf("%d\n",prime[i]); } printf("\n"); } return 0; }
相关文章推荐
- python 写文件刷新缓存
- 本地方法(JNI)——访问域+字符串参数
- CheckBox的使用
- 6.2 PowerPC处理器如何处理MSI中断请求
- 架构之路(九)Session Per Request
- ssh使用http代理登录工具
- C#成神之路<4> C#第一次程序编写
- Linux服务器内外网端口转发映射
- MSI/MSI-X Capability结构
- swift-比较运算符
- JAVA环境变量配置
- -force_load
- 第6章 MSI和MSI-X中断机制
- Hyper-V:利用差异磁盘安装多个Win2008
- POJ 3067 Japan
- sqlite3安装
- 对虚机设备Bridge ,Vlan, VETH, TAP详细介绍
- python Popen卡死问题
- Django REST framework的各种技巧【目录索引】
- 1038 Recover the Smallest Number