C语言小程序——寻找1000以内的素数回文
程序员文章站
2022-05-11 20:26:18
...
所谓素数回文指的是,对一个整数n从左向右和从右向左读其数值都相同且n为素数,则称整数为回文素数。
对于偶数位的整数,除了11以外,都不存在回文素数。即所有的4位整数、6位整数、 8位整数…都不存在回文素数。下面列出两位和三位整数中包含的所有回文素数。
两位回文素数:11
三位回文素数:101、131、151、181、191、313、353、373、383、727、757、787、 797、 919、 929
本题要求解的问题是:求出所有不超过1000的回文素数。
代码如下所示:
#include <stdio.h>
void fun(int n)
{
int i,j,flag,k=0;
static int length_s=0,length_r=0;
int result[1000],sushu[1000];
for(i=10;i<=n;i++)
{
flag=1;
for(j=2;j<i;j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1)
{
sushu[k++]=i;
length_s=k;
}
}
for(i=0,j=0;i<length_s;i++)
{
if(sushu[i]<100)
{
if(sushu[i]%10==sushu[i]/10)
{
result[j++]=sushu[i];
}
length_r=j;
}
else
{
if((sushu[i]%100)%10==sushu[i]/100)
{
result[j++]=sushu[i];
}
length_r=j;
}
}
for(i=0;i<length_r;i++)
printf("%d ",result[i]);
}
void main()
{
int n=1000;
fun(n);
printf("\n");
}
输出结果如下所示:
上一篇: 墨仓式l1300打印机驱动安装图文教程