欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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");
}

输出结果如下所示:
C语言小程序——寻找1000以内的素数回文