您的位置:首页 > 其它

hdu 1431 素数回文

2012-09-01 20:41 302 查看
#include<iostream>
using namespace std;
bool pri[10000000];
long long l,r;
long long p[1000000];
void judge()
{
memset(pri,0,sizeof(pri));
for(long long i=3;i<=3163;i+=2)
{
if(pri[i]==1) continue;
for(long long j=i*i;j<=10000000;j+=i)
{
pri[j]=1;
}
}
pri[6]=1;
pri[8]=1;
}

bool huiwen(long long a)
{
long long b=0;
long long temp=a;
while(temp)
{
b=b*10;
int c=temp%10;
b=b+c;
temp=temp/10;
}
return a==b;
}

int main()
{
judge();
int index=0;
for(long long i = 5;i<=10000000;i++)
{
if(!pri[i] && huiwen(i)&&i%2==1)
p[index++] = i;
}
while(cin>>l>>r)
{
if(l>r)
{
int t=l;
l=r;
r=t;
}
for(long long i=0;i<=index;i++)
{
if(p[i]<l) continue;
if(p[i]>r) break;
cout<<p[i]<<endl;
}
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: