1.创建一个函数判断 一个数是否为回文数
bool huiwen(int x)
{
int k = x;
int sum = 0;
while (x > 0)
{
sum = sum * 10+ x % 10;
x /= 10;
}
if (k == sum)
{
return true;
}
else
{
return false;
}
}
只需要返回真假,即可完成后续判断,所以设置函数类型为bool型
如果不明白如何判断一个数是否为回文数,我以前的文章有写过,去翻看一下
2.在主函数内产生1-1001的素数并用是否为回文数的函数判断
int main()
{
printf("Following are palindrome primes not greater than 1000:\n");
int i = 0, j = 0;
for (i = 2; i < 1001; i++)
{
for (j = 2; j < sqrt(i); j++)
{
if (i % j == 0)
{
break;
}
}
if (j > sqrt(i)&&huiwen(i)&&i>10)//用回文函数判断是否为回文数
{ //回文数要求至少为2位数,故要大于10
printf("%d\t", i);
}
}
sushu;
return 0;
}
3.完整代码
#include<stdio.h>
bool huiwen(int x)
{
int k = x;
int sum = 0;
while (x > 0)
{
sum = sum * 10+x%10;
x /= 10;
}
if (k == sum)
{
return true;
}
else
{
return false;
}
}
int main()
{
printf("Following are palindrome primes not greater than 1000:\n");
int i = 0, j = 0;
for (i = 2; i < 1001; i++)
{
for (j = 2; j < sqrt(i); j++)
{
if (i % j == 0)
{
break;
}
}
if (j > sqrt(i)&&huiwen(i)&&i>10)
{
printf("%d\t", i);
}
}
sushu;
return 0;
}