/* 本题给的n的数据很大,但是n > N 的时候的数都是不成立 数论真的要好好的去学习 */ #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; const int N = 10000000; bool hash[N]; int path[1000000]; int len; inline void Hash() { memset(hash, false, sizeof(hash)); for(int i = 2; i < (int)sqrt(1.0 * N); i++) { if(hash[i]) continue; for(int j = i * i; j < N; j += i) hash[j] = true; } } inline int change(int n) { int temp = 0; int r = n; while(r) { temp = 10 * temp + r % 10; r /= 10; } if(n == temp) return 1; else return 0; } inline void huiw()// 判断是否是回文 { for(int i = 2; i < N; i++) { if(hash[i]) continue; if(change(i) == 1) path[len++] = i; } } int main() { int n, m; len = 0; Hash(); huiw(); while(cin >> n >> m) { for(int i = 0; i < len; i++) { if(path[0] > m) break; if(path[i] < n) continue; else if(path[i] <= m) printf("%d/n", path[i]); else break; } printf("/n"); } }