记录编号 |
366487 |
评测结果 |
AAAAAAAAA |
题目名称 |
[USACO 1.5] 回文质数 |
最终得分 |
100 |
用户昵称 |
波大比 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.061 s |
提交时间 |
2017-01-24 12:04:57 |
内存使用 |
0.70 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
const int nmax=100086;
int upperbound,lowerbound;
int ans[nmax]={0};
void PreDo()
{
scanf("%d%d",&lowerbound,&upperbound);
}
bool Judge(int x)
{
bool tag=1;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0)
{
tag=0;
break;
}
}
return tag;
}
void Col()
{
ans[1]=2;
ans[2]=3;
ans[3]=5;
ans[4]=7;
ans[5]=11;
int cnt=6;
int tmp=0;
for(int i=1;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
tmp=i*100+j*10+i;
if(Judge(tmp))
{
cnt++;
ans[cnt]=tmp;
}
}
}//3
for(int i=1;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
tmp=i*1000+j*100+j*10+i;
if(Judge(tmp))
{
cnt++;
ans[cnt]=tmp;
}
}
}//4
for(int i=1;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
for(int k=0;k<=9;k++)
{
tmp=i*10000+j*1000+k*100+j*10+i;
if(Judge(tmp))
{
cnt++;
ans[cnt]=tmp;
}
}
}
}//5
/*
for(int i=1;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
for(int k=0;j<=9;k++)
{
tmp=i*100000+j*10000+k*1000+k*100+j*10+i;
if(Judge(tmp))
{
cnt++;
ans[cnt]=tmp;
}
}
}
}//6
*/
for(int i=1;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
for(int k=0;k<=9;k++)
{
for(int l=0;l<=9;l++)
{
tmp=i*1000000+j*100000+k*10000+l*1000+k*100+j*10+i;
if(Judge(tmp))
{
cnt++;
ans[cnt]=tmp;
}
}
}
}
}//7
for(int i=1;i<=9;i++)
{
for(int j=0;j<=9;j++)
{
for(int k=0;k<=9;k++)
{
for(int l=0;l<=9;l++)
{
tmp=i*10000000+j*1000000+k*100000+l*10000+l*1000+k*100+j*10+i;
if(Judge(tmp))
{
cnt++;
ans[cnt]=tmp;
}
}
}
}
}//8
// printf("%d\n",cnt);
}
void Out()
{
for(int i=1;i<=10000;i++)
{
if(lowerbound<=ans[i]&&ans[i]<=upperbound)
{
printf("%d\n",ans[i]);
}
}
}
int main()
{
freopen("pprime.in","r",stdin);
freopen("pprime.out","w",stdout);
PreDo();
Col();
Out();
return 0;
}