Write down all the qualifying numbers and sweep them all over again, and this type of number is up to 2W.
/*id:18906421lang:c++prog:pprime*/#include <cmath> #include <cstdio> #include <vector> #include <algorithm>using namespace Std;const int maxn = 20005;int A,b;int cnt = 0;int prime[maxn];bool is_prime (int v) {i NT E = sqrt (v) + 1; for (int i = 2; I <= e; i++) if (v i = = 0) return false; return true;} int solve1 () {//1 2 for (int i = 1; I <= 9; i++) {int v1 = i; int v2 = i * ten + i; if (Is_prime (v1)) prime[cnt++] = v1; if (Is_prime (v2)) prime[cnt++] = v2; }}int solve2 () {//3 4 for (int i = 1, i <= 9; i++) {for (int j = 0; J <= 9; j + +) {int v1 = i * 100 + J * + I; int v2 = i * + + J * + + J * + I; if (Is_prime (v1)) prime[cnt++] = v1; if (Is_prime (v2)) prime[cnt++] = v2; }}}int Solve3 () {//5 6 for (int i = 1, i <= 9; i++) {for (int j = 0; J <= 9; j + +) {for (int k = 0; K <= 9; k++) {int v1 = i * 10000+ J * + K * + + J * + I; int v2 = i * 100000 + J * 10000 + K * + K * + J * + I; if (Is_prime (v1)) prime[cnt++] = v1; if (Is_prime (v2)) prime[cnt++] = v2; }}}}int Solve4 () {//7 8 for (int i = 1, i <= 9; i++) {for (int j = 0; J <= 9; j + +) {fo R (int k = 0; k <= 9; k++) {for (int l = 0; l <= 9; l++) {int v1 = i * 1000000 + j * 100000 + K * 10000 + L * + K * + + J * + I; int v2 = i * 10000000 + J * 1000000 + K * 100000 + L * 10000 + L * + K * + + J * + I; if (Is_prime (v1)) prime[cnt++] = v1; if (Is_prime (v2)) prime[cnt++] = v2; }}}}}void init () {solve1 (); Solve2 (); Solve3 (); Solve4 (); Sort (prime,prime + cnt);} int main () {freopen ("pprime.in", "R", stdin); Freopen ("Pprime.out", "w", stdout); Init (); scanf ("%d%d", &A,&B); for (int i = 0; i < cnt; i++) if (Prime[i] >= a && prime[i] <= b) printf ("%d\n", Prime[i]) ; return 0;}
"Usaco" Prime palindromes (violence, violence and violence)