HDU1431(暴力)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42391248/article/details/83041999

题解:用暴力求解即可,判断回文数的时候用sprintf会超时,主函数判断时,先判断回文数在判断素数,会节省很多时间。

#include<iostream>
using namespace std;
int sushu(int n)
{
	for(int i=2;i*i<=n;i++)
		if(n%i==0)
			return 0;
	return 1;
}
int huiwen(int a)
{
    int s[20];
    int i,j,n=0;    
    while(a)
    {
        s[n++]=a%10;
        a/=10;
    }
    for(i=0,j=n-1;i<n/2;i++,j--)
        if(s[i]!=s[j])
            return 0;
    return 1;    
}
int main()
{	
	int a,b;
	while(scanf("%d%d",&a,&b)!=EOF)
	{
		for(int i=a;i<=b&&i<10000000;i++)
			if(huiwen(i)&&sushu(i))
				printf("%d\n",i);	
		printf("\n");	
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_42391248/article/details/83041999