回文素数即素数中是回文数的数,若要判断只需先对数判断是否为素数后,继续判断是否为回文数即可;
下面是代码的具体展示:
#include<stdio.h>
int prime(int i); //判断素数的函数
int palindrome(int i); //判断回文数的函数
int main()
{ int n; //单纯求1000内回文素数可将前三行删去,将第五行的n改为1000.
printf("请输入需要多少以内的回文素数\n");
scanf("%d",&n);
printf("该范围内的回文素数如下:\n");
for(int i=10;i<n;i++)
{
if(prime(i)) //判断是素数
{
if(palindrome(i)) //判断该素数是回文数
{
printf("%d\n",i); //输出该回文素数
}
}
}
return 0;
}
int prime(int i) //判断素数的函数
{
int j = 2;
for(j;j<i;j++)
{
if(i%j==0) //如果j能被小于j的数整除,则返回false 0;
{
return 0;
}
else //初学者用这个判断简单易懂,如果想要了解更多可以看
{ //博主关于判断素数的文章
return 1;
}
}
}
int palindrome(int i)
{
int x,y;
int z = 0;
x=i;
while(i!=0) //对数进行倒转如:将123倒转为321
{
y=i%10; //获得i的末位数
z=z*10+y; //每次自乘十后加末位数
i /= 10; //每次自除十舍弃末尾数
}
if(x==z) //判断倒转后是否等于原数,即是否为回文数
{
return 1; //是则返回真1,否则返回假0;
}
else
{
return 0;
}
}
更多推荐
C语言判断回文素数
发布评论