题解:用暴力求解即可,判断回文数的时候用sprintf会超时,主函数判断时,先判断回文数在判断素数,会节省很多时间。

#include<iostream>
using namespace std;
int sushu(int n)
{
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int huiwen(int a)
{
int s[20];
int i,j,n=0;
while(a)
{
s[n++]=a%10;
a/=10;
}
for(i=0,j=n-1;i<n/2;i++,j--)
if(s[i]!=s[j])
return 0;
return 1;
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
for(int i=a;i<=b&&i<10000000;i++)
if(huiwen(i)&&sushu(i))
printf("%d\n",i);
printf("\n");
}
return 0;
}