【HDU】 1431 素数回文
来源:互联网 发布:mac如何卸载opera 编辑:程序博客网 时间:2024/06/06 00:34
素数回文
题目链接
- 素数回文
题目大意
求出a到b之间的回文素数。
题解
仍然是打表暴力…
关于这个打表的界限是一开始开50000000的时候猜的,然后关于打表的话,能在外面打的全放在外面吧…一开始判定回文的循环放在内层就过不了,放在外面打表就过了…
代码
#include <iostream>#include <cstring>#include <cstdio>#include <cmath>using namespace std;int a,b,tab[200000],h,t;int ans[200000];bool vis[10000005];bool che(int x){ int c=x,t=0; while(c) { t*=10; t+=c%10; c/=10; } return (x==t);}void settab(int high){ h=0; memset(tab,0,sizeof(tab)); memset(vis,0,sizeof(vis)); for (int i=4;i<=high;i+=2) vis[i]=1; int p=(int) sqrt(high); for (int i=3;i<=p;i+=2) if (!vis[i]) { int j=i*i; while(j<=high) { vis[j]=1; j+=i; } } for (int i=2;i<=high;i++) if (!vis[i] && che(i)) tab[h++]=i;}int ser(int k){ int l=0,r=h-1,mid; while (l!=r) { mid=(l+r)>>1; if (k<=tab[mid]) r=mid; else l=mid+1; } return l;}int main(){ settab(9989899); while(scanf("%d%d",&a,&b)!=EOF) { int low=ser(a),high=ser(b); if (high!=h-1 && tab[high]!=b) high--; for (int i=low;i<=high;i++) printf("%d\n",tab[i]); printf("\n"); } return 0;}
0 0
- hdu 1431 素数回文
- hdu 1431 素数回文
- HDU-1431-素数回文
- hdu 1431 素数回文
- HDU 1431 素数回文
- Hdu 1431 - 素数回文
- hdu 1431 素数回文
- hdu 1431(素数回文)
- HDU-1431素数回文
- hdu 1431 素数回文
- hdu 1431 素数回文
- hdu 1431 素数回文
- hdu 1431 素数回文
- hdu 1431 素数回文
- hdu 1431 素数回文
- HDU 1431 素数回文
- HDU 1431 素数回文
- 素数回文 HDU 1431
- 怎么快速看懂别人写的module和ipcore
- Android基础知识整合篇——Activity知识点
- Easy-题目46:205. Isomorphic Strings
- 鼠标经过旋转特效
- 神经网络浅析
- 【HDU】 1431 素数回文
- new一个对象的过程
- Package.json中dependencies依赖包中^符号和~符号前缀的区别
- Easy-题目47:20. Valid Parentheses
- 百度地图api
- VS2015找不到stdlib.h的问题
- Spring.No1 ----整理---Spring学习的第一课
- 多模匹配算法之Aho-Corasick
- shell(三)