记录编号 |
110378 |
评测结果 |
AAAAAAAAA |
题目名称 |
[USACO 1.5] 回文质数 |
最终得分 |
100 |
用户昵称 |
slyrabbit |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.064 s |
提交时间 |
2014-07-11 10:48:09 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long x,y;
int weishu(int x)
{
int l=0,temp=x;
while(temp>0)
{
l++;
temp/=10;
}
return l;
}
bool check(long long m)
{
double temp=m;
if(m<x||m>y)
return false;
for(int i=2;i<=sqrt(temp);i++)
{
if(m%i==0)
return false;
}
return true;
}
int main()
{
freopen("pprime.in","r",stdin);
freopen("pprime.out","w",stdout);
long long a1[10]={0};
long long a2[100]={0};
long long a3[1000]={0};
long long a4[10000]={0};
int l[5]={0};
cin>>x>>y;
for(int i=1;i<=weishu(y);i+=2)
{
if(i==9)
break;
for(int j=0;j<=9;j++)
{
if(i==1)
{
a1[j]=j;
if(check(j))
cout<<j<<endl;
l[1]++;
}
if(i==3)
{
for(int k=0;k<=l[1];k++)
{
a2[l[2]++]=j*100+a1[k]*10+j;
if(check(a2[l[2]-1]))
cout<<a2[l[2]-1]<<endl;
}
}
if(i==5)
{
for(int k=0;k<=l[2];k++)
{
a3[l[3]++]=j*10000+a2[k]*10+j;
if(check(a3[l[3]-1]))
cout<<a3[l[3]-1]<<endl;
}
}
if(i==7)
{
if(j==0)
continue;
for(int k=0;k<=l[3];k++)
{
a4[l[4]++]=j*1000000+a3[k]*10+j;
if(check(a4[l[4]-1]))
cout<<a4[l[4]-1]<<endl;
}
}
}
if(i==1&&x<=11)
cout<<11<<endl;
}
return 0;
}