HDU 回文素数
来源:互联网 发布:机车 知乎 编辑:程序博客网 时间:2024/05/19 19:14
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
5711101131151181191313353373383---------------------------思路:很简单,就是,先打一张素数表,然后用普通的方法判断是否是回文的后来,从别人那里发现,实际上单就回文,素数来讲,回文的数字少,素数较多,也就是说,可以先判断,回文再判断素数;不过下面的程序是先判断素数,再判断回文的;/*回文素数:打表*/#include<stdio.h>#include<math.h>#include<string.h>#define N 100000011int nprime[N];int su[N];int main(){char buff[15];memset(buff,0,sizeof(buff));int limit,le,ri,flag;int i,j,k,start,end,t,len;limit = sqrt(N)+1;nprime[1]=1;for(i=2;i<=limit;i++){if(!nprime[i]){for(j=i*i;j<N;j+=i)nprime[j]=1;}}for(k=5;k<N;k++){if(!nprime[k]){sprintf(buff,"%d",k);len = strlen(buff);if(len==1){su[k]=1;continue;}else if(len==2){if(buff[0]==buff[1])su[k]=1;}else{//flag=1;t = len/2;for(le=t-1,ri=t+1;le>=0&&ri<len;le--,ri++){if(buff[le]==buff[ri])flag=1;else{ flag=0;break;}}if(flag)su[k] = 1;}}}while(scanf("%d%d",&start,&end)!=EOF){for(i=start;i<=end;i++){if(su[i])printf("%d\n",i);}}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 回文素数
- hdu 1431 素数回文
- hdu 1431 素数回文
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- Struts2返回JSON数据的具体应用范例
- 01.javaSE概述
- 高斯消元法
- zoj 3508 The War 贪心
- HDU 回文素数
- iOS中读取照片库
- Java:集合类性能分析
- 消除SDK更新时的“https://dl-ssl.google.com refused”异常
- UVa712 - S-Trees
- 国外免费公共DNS解析服务器
- 政法委书记哦被调查了
- poj 1840 Eqs 暴力
- iOS App 目录结构