C語言判別m和n之間的回文素數(數組)


問題:

        求m~n(m≥10,n≤10000)之間的回文素數,所謂回文素數,即這個數既是回文又是素數。程序首先要判斷某個數是否是回文,再判斷是否是素數。如果是回文素數,則保存於數組中,並按6位域寬輸出,每行輸出5個。

輸入:

        m n

輸出:

        m~n之間的回文素數,每個數占6位,每行限輸出5個。

例如:

        

代碼:

   

#include <stdio.h>
#include <math.h>

void main()
{
	int m,n,i,j,k,sum;
	int a[1000],t=1;
	scanf("%d%d",&m,&n);
	for(i=m;i<=n;i++)
	{
		int s1=1,s2=1;
		sum=0;j=i;
		while(j>0)//判斷回文 
		{
			sum=sum*10+j%10;
			j=j/10;
		}
		if(sum==i)
		{
			s1=0;
		}
		for(k=2;k<=sqrt(i);k++)//判斷素數 
		{
			if(i%k==0)
			   s2=0;
		}
		if(s1==0 && s2==1)
		{
			a[t++]=i;
		}
	}
	for(i=1;i<t;i++)
	{
		if(i%5!=0)
		   printf("%6d",a[i]);
		else
		   printf("%6d\n",a[i]);
	}
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM