回文素数是指对一个素数n,从左到右和从右到左读是相同的,这样的数就称为回文素数,例如11,101,313等。以下代码可输出10的7次方内的所有回文素数。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//判断素数
int prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++){
if(n%i==0)
return 0;
}
return 1;
}
//是否回文
int pali(int n)
{ int olde=n;
int m=0;
while(n){
m=m*10+n%10;
n/=10;
}
if(m==olde)return 1;
return 0;
}
int main()
{
int a;
for (a=2;a<=1e7;a++)
{
//if(pali(a)==1&&prime(a)==1)// 更快
if(prime(a)==1&&pali(a)==1)
printf("%d\n",a);
}
}
}