/*
输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)
输出一个整数,表示区间内回文素数个数。
*/
//回文素数
//https://www.nowcoder.com/practice/4802faa9afb54e458b93ed372e180f5c?tpId=90&tqId=30793&rp=10&ru=%2Factivity%2Foj&qru=%2Fta%2F2018test%2Fquestion-ranking&tPage=1
#include<stdio.h>
#include<math.h>
int exchange(int a);
int prime(int a);
int main(int argc,char *argv[])
{
int m,n,i;
int cnt=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
if(i==exchange(i)&&prime(i)==1)
{
//printf("%d %d\n",i,prime(i));
cnt++;
}
}
if(m==1)
{
cnt--;
}
printf("%d",cnt);
return 0;
}
int exchange(int a)
{
int t;
int num=0;
while(a>0)
{
t=a%10;
num=num*10+t;
a/=10;
}
a=num;
return a;
}
int prime(int a)
{
int i;
int t=1;
for(i=2;i<=sqrt(a);i++)
{
if(i==1)
{
break;
}
if(a%i==0)
{
t=0;
break;
}
}
return t;
}
原文:https://www.cnblogs.com/lijianmin6/p/10628118.html