/*
ID: ljracm1
LANG: C++
PROB: pprime
*/
#include<iostream>
#include<vector>
#include<math.h>
#include<cstdio>
#define T
using namespace std;
bool judge(int x){
for(int i=2; i<=sqrt(x); i++)
if(x%i==0)return false;
return true;
}
int main(){
#ifdef T
freopen("pprime.in","r",stdin);
freopen("pprime.out","w",stdout);
#endif
vector<int>vec;
int a,b;
cin>>a>>b;
//产生长度为1的回文数
for(int d1=1; d1<=9; d1+=2)
vec.push_back(d1);
//2
for(int d1=1; d1<=9; d1+=2)
vec.push_back(d1*10+d1);
//3
for(int d1=1; d1<=9; d1+=2)
for(int d2=0; d2<=9; d2++)
vec.push_back(d1*100+d2*10+d1);
//4
for(int d1=1; d1<=9; d1+=2)
for(int d2=0; d2<=9; d2++)
vec.push_back(d1*1000+d2*100+d2*10+d1);
//5
for(int d1=1; d1<=9; d1+=2)
for(int d2=0; d2<=9; d2++)
for(int d3=0; d3<=9; d3++)
vec.push_back(d1*10000+d2*1000+d3*100+d2*10+d1);
//6
for(int d1=1; d1<=9; d1+=2)
for(int d2=0; d2<=9; d2++)
for(int d3=0; d3<=9; d3++)
vec.push_back(d1*100000+d2*10000+d3*1000+d3*100+d2*10+d1);
//7
for(int d1=1; d1<=9; d1+=2)
for(int d2=0; d2<=9; d2++)
for(int d3=0; d3<=9; d3++)
for(int d4=0; d4<=9; d4++)
vec.push_back(d1*1000000+d2*100000+d3*10000+d4*1000+d3*100+d2*10+d1);
//8
for(int d1=1; d1<=9; d1+=2)
for(int d2=0; d2<=9; d2++)
for(int d3=0; d3<=9; d3++)
for(int d4=0; d4<=9; d4++)
vec.push_back(d1*10000000+d2*1000000+d3*100000+d4*10000+d4*1000+d3*100+d2*10+d1);
//9
for(int d1=1; d1<=9; d1+=2)
for(int d2=0; d2<=9; d2++)
for(int d3=0; d3<=9; d3++)
for(int d4=0; d4<=9; d4++)
for(int d5=0; d5<=9; d5++)
vec.push_back(d1*100000000+d2*10000000+d3*1000000+d4*100000+d5*10000+d4*1000+d3*100+d2*10+d1);
for(int i=0; i<vec.size(); i++){
if(vec[i]>b)break;
if(vec[i]>=a&&judge(vec[i])){
cout<<vec[i]<<endl;
}
}
return 0;
}
usaco pprime
最新推荐文章于 2017-07-11 13:11:40 发布