#include<stdio.h>
int judge(int a)
{ int i=0;
while(a>0)
{
a=a/10;
i=i+1;
}
return i;
}
int sushu(int a)
{
int i,flag=1,m;
for(i=2;i<a;i++)
if(a%i==0) flag=0;
if(flag==0) return 0;
else return 1;
}
int duichenshu(int a)
{
int wei,n,i=0,s[10];
wei=judge(a);
while(a>0)
{
s[i]=a%10;
a=a/10;
i++;
}
int flag=1;
for(i=0;i<wei;i++)
if(s[i]!=s[wei-1-i]) flag=0;
if(flag==0) return 0;
else return 1;
}
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
int i,m,n,p,sum=0,temp;
if(a>b)
{ temp=a;
a=b;
b=temp;
}
for(i=a;i<=b;i++)
{
m = sushu(i);
n = duichenshu(i);
if(m==1&&n==1)
{printf("%6d",i);
sum=sum+1;
if(sum%5==0)
printf("\n");
}
}
if(sum!=0&&sum%5!=0) printf("\n");
}
}
int judge(int a)
{ int i=0;
while(a>0)
{
a=a/10;
i=i+1;
}
return i;
}
int sushu(int a)
{
int i,flag=1,m;
for(i=2;i<a;i++)
if(a%i==0) flag=0;
if(flag==0) return 0;
else return 1;
}
int duichenshu(int a)
{
int wei,n,i=0,s[10];
wei=judge(a);
while(a>0)
{
s[i]=a%10;
a=a/10;
i++;
}
int flag=1;
for(i=0;i<wei;i++)
if(s[i]!=s[wei-1-i]) flag=0;
if(flag==0) return 0;
else return 1;
}
int main()
{
int a,b;
while(~scanf("%d%d",&a,&b))
{
int i,m,n,p,sum=0,temp;
if(a>b)
{ temp=a;
a=b;
b=temp;
}
for(i=a;i<=b;i++)
{
m = sushu(i);
n = duichenshu(i);
if(m==1&&n==1)
{printf("%6d",i);
sum=sum+1;
if(sum%5==0)
printf("\n");
}
}
if(sum!=0&&sum%5!=0) printf("\n");
}
}
这是一个老生常谈的问题,这个代码帮我解决过无数道与素数有关的问题,非常非常的好用,我要在博客里存个备份