构造回文数老是写错,这是写的暴力枚举
#include<bits/stdc++.h>
using namespace std;
int L, R;
bool range(int x) {
return !(12 <= x && x <= 99) || (1000 <= x && x <= 9999) || (100000 <= x && x <= 999999);
}
bool palindrome(int x) {
string str, rstr;
str = to_string(x), rstr = str;
reverse(rstr.begin(), rstr.end());
return rstr == str;
}
bool prime(int x) {
for (register int i = 3; i <= sqrt(x); ++i, ++i) {
if (x % i == 0) {
return 0;
}
}
return 1;
}
int main() {
scanf("%d %d", &L, &R);
if (L % 2 == 0) {
L++;
}
R = min(9989899, R);
for (register int i = L; i <= R; ++i, ++i) {
if (range(i) && palindrome(i) && prime(i)) {
printf("%d\n", i);
}
}
return 0;
}