View Code of Problem 92

#include<stdio.h>
#include<string.h>
#include<math.h>
int prime(int n)//判定素数 
{
	if(n<=1) return 0;
	int i;
	for(i=2;i<=sqrt(n)/2;i++)
	{
		if(n%i==0) return 0;
	}
	return 1;
}
int main()
{
	int m,n,i,j,b[10],s[10000],len=0;
	scanf("%d %d",&m,&n);
	for(i=m;i<=n;i++)
	{
		int k=0,t;
		t=i;
		memset(b,0,sizeof(b));
		while(t!=0)//将每个数拆开存放到数组中 
		{
			b[k++]=t%10;
			t=t/10;
		} 	
		int flag=0;
		for(j=0;j<k;j++)//判断回文 
		{
			if(b[j]!=b[k-j-1])
			{
				flag=1;
				break;
			}
			
		}
		if(flag==0&&prime(i)==1)//若是回文并且是素数 
		s[len++]=i; //存放到数组s中 
	}
	for(i=0;i<len;i++) //输出s中各个元素 
	{
		printf("%6d",s[i]);
		if(i%5==4)
		printf("\n");
	}
	 return 0;
 } 

Double click to view unformatted code.


Back to problem 92