问题描述 :
因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 号是回文质数。写一个程序来找出范围[a,b](5<= a < b <= 100,000)间的所有回文质数
输入说明 :
仅 1 行: 二个整数 a 和 b(5<= a < b <= 100,000)。
输出说明 :
输出一个回文质数的列表,一行一个。
每行首尾无空格,最后无空行。
输入范例 :
300 500
输出范例 :
313
353
373
383
AC代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int isZhiShu(int n){
int i;
if(n<5)
return 0;
for(i=2;i<=n/2;i++){
if(n%i==0)
break;
}
if(i>n/2)
return 1;
else
return 0;
}
int isHuiWen(char a[],int n){
int i,j;
for(i=0,j=n-1;i<j;i++,j--){
if(a[i]!=a[j])
return 0;
}
return 1;
}
int main(){
int a,b,i,len;
char s[7];
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++){
itoa(i,s,10);//将数字转化为10进制的字符串
len=strlen(s);
if(isZhiShu(i)&&isHuiWen(s,len))
printf("%d\n",i);
}
return 0;
}