题目描述
一个素数,如果将其反转后仍然是一个素数,我们称这样的素数为反转素数。
例如13是一个素数,反转之后得到的31也是一个素数,那么13和31都是反转素数。
当然,一位数的素数也满足反转素数的性质。
现在输入两个正整数m和n,满足1<=m<n<=100000,求m和n之间的反转素数的个数。
输入
两个整数:m和n
输出
输出m和n之间的反转素数的个数
样例输入 Copy
1 13
样例输出 Copy
6
#include<stdio.h>
#include<math.h>
int ss(int n)
{
int j;
if(n==2)return 1;
else if(n==1)return 0;
else if(n==3)return 1;
else if(n%6!=1&&n%6!=5)
return 0;
else {for(j=2;j<=(int)sqrt(n);j++)
if(n%j==0)break;
if(j>(int)sqrt(n))return 1;
else return 0;
}
}
int main()
{
int m,n,count=0;
scanf("%d%d",&m,&n);
if(m%2==0)m++;
for(;m<=n;m++)
{
int y=0,x;
x=m;
while(x)y=y*10+x%10,x/=10;
if(ss(m)==ss(y)&&ss(m)==1)count++;
}
printf("%d\n",count);
return 0;
}