因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;
#include<iostream>
using namespace std;
int hw(long long s)
{
int kd=s,n=1;
while(kd)
{
kd/=10;
n*=10;
}
n/=10;
kd=s;
for(int i=n;i>=1;i/=100)//判断是否回文
{
if(kd/i!=kd%10)
return 0;
kd-=kd/i*i;
kd/=10;
}
for(int i=2;i*i<=s;i++)//判断质数
{
if(s%i==0)
return 0;
}
return 1;
}
int main()
{
long long n1,n2;
cin>>n1>>n2;
if(n2>10000000)
n2=10000000;
for(long long i=n1;i<=n2;i++)
if(hw(i)==1)
cout<<i<<endl;
}
回文素数
最新推荐文章于 2020-03-02 15:39:23 发布