c:回文质数
题目描述
因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 号是回文质数。写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)间的所有回文质数;
输入
第 1 行: 二个整数 a 和 b .
输出
输出一个回文质数的列表,一行一个。
样例输入 Copy
5 500
样例输出 Copy
5
7
11
101
131
151
181
191
313
353
373
383
#include<stdio.h>
#include<math.h>
int m(int a)
{
int i,sum=0;
i=a;
while(i)
{
sum=sum*10+i%10;
i=i/10;
}
if(a==sum)
return 1;
else return 0;
}
int n(int a)
{
int i;
for(i=2; i<=sqrt(a); i++)
{
if(a%i==0)
break;
}
if(i>sqrt(a))
return 1;
else return 0;
}
int main()
{
int a,b,i;
while(scanf("%d%d",&a,&b)!=EOF)
{
for(i=a;i<=b; i++)
{
if(m(i))
{
if(n(i))
printf("%d\n",i);
i++;
}
else
continue;
}
}
return 0;
}