题目描述
小王对既是素数又是回文的数特别感兴趣。比如说151既是素数又是个回文。现在小王想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数。(5 <= a < b <= 9999999);
输入格式
输入a和b(5 <= a < b <= 9999999)
输出格式
按从小到大输出a,b之间所有满足条件的素数回文数
输入样例 复制
5 500
输出样例 复制
5
7
11
101
131
151
181
191
313
353
373
383
分类标签
#include <stdio.h>
#include <string.h>
int hwlengh(int k){
int a[10],i=0;
while(k>0){
a[i]=k%10;
k/=10;
i++;
}
return (i);/*单位数*/
}
int huiwen(int k){
int a[10],i=0,j;
while(k>0){
a[i]=k%10;
k/=10;
i++;
}
for(j=0;j<i;j++){
if(a[j]!=a[i-j-1]){
return 0;
}
}
return 1;/*回文*/
}
int prime(int k){
int i;
for(i=3;i*i<=k;i+=2){
if(k%i==0){
return 0;
}
}
return 1;
}
int main()
{
int a,b,i,j;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++){
if(i%2==0 && i!=2){
continue;
}
if(i%5==0 && i!=5){
continue;
}
if(hwlengh(i)%2==0 && i!=11){
continue;
}
if(!huiwen(i)){
continue;
}
if(prime(i)){
printf("%d\n",i);
}
}
return 0;
}