#include <stdio.h>
#include <stdlib.h>
#include<math.h>
#include<stdbool.h>
#define size 100000000
int num[size],pr[size];
void judge(int b)//打2到b的质数表
{
int i,j,count=0;
for(i=2;i<b;i++){
if(i>2&&i%2==0)
continue;
else{
if(num[i]){
pr[count++]=i;
}
for(j=0;j<i&&pr[j]*i<b;j++){
num[pr[j]*i]=0;
if(i%pr[j]==0)
break;}}
}
}
}
int judge2(int num)//判断回文数
{
int a,a_1,now=0;
a=num;
while(num!=0){
a_1=num%10;
now=now*10+a_1;
num=num/10;
}
if(a==now)
return 1;
else return 0;
}
int main(void)
{
int a,b,k=1,m;
scanf("%d %d",&a,&b);
for(int i=0;i<=b;i++){
num[i]=1;
}
judge(b);//得到一个2-b的质数表
for(int i=a;i<=b;i++){
if(num[i]){
if(judge2(i)){
num[k]=i;
k++;
}
}
}
for(m=1;m<=k-1;m++)
printf("%d\n",num[m]);
return 0;
}
必须要先判断回文数吗,