View Code of Problem 92

//判断素数
//判断回文数
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int arr[10010];
int ishuiwen(int n)
{
	int len=(int)(log10(n)+1);
	int k=n;
	int a=len;
	int sum=0;
	for(int i=1;i<=a;i++)
	{
		int t=k%10;
		sum+=t*pow(10,--len);
		k=k/10;
	}
	if(sum==n)
		return 1;
	else
		return 0;
}
int isPrime(int n)
{
	if(n<=1)return false;//不是素数,但也不代表这是合数
	int sqr=(int)sqrt(1.0*n);
	for(int i=2;i<=sqr;i++)
	{
		if(n%i==0)
			return false;//不是素数
	}
	return true;//是素数
}		
int main()
{

	int m,n;
	int len=0;
	cin>>m>>n;
	if(m>n)
		swap(m,n);
	for(int i=m;i<=n;i++)
	{
		if(isPrime(i)&&ishuiwen(i))
			arr[len++]=i;
	}
	for(int i=0;i<len;i++)
	{
		if((i+1)%5==0)
			printf("%6d\n",arr[i]);
		else
			printf("%6d",arr[i]);
	}
	system("pause");

}

Double click to view unformatted code.


Back to problem 92