题目描述
因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;
输入格式:
第 1 行: 二个整数 a 和 b .
输出格式:
输出一个回文质数的列表,一行一个。
输入输出样例
输入样例:5 500
输出样例:5 7 11 101 131 151 181 191 313 353 373 383
#include<iostream>
#include<cmath>
using namespace std;
int huiwen(int x)
{
int c=x,d=0;
while(c>0)
{
d=d*10+c%10;
c/=10;
}
if(x==d)
{
return 1;
}
else
{
return 0;
}
}
int prime(int y)
{
int i;
double k=sqrt((double)y);
for(i=2;i<=k;i++)
{
if(y%i==0)
{
break;
}
}
if(i<=k)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
int a,b,i;
cin>>a>>b;
for(i=a;i<=b;i++)
{
if(huiwen(i)==1)
{
if(prime(i)==1)
{
cout<<i<<endl;
}
}
}
return 0;
}