boolis_palindrome(int x){ int num[10]; int l = 0; while (x > 0) { num[l] = x % 10; l++; x /= 10; } l--; for (int i = 0, j = l; i < j; i++, j--) { if (num[i] != num[j]) returnfalse; } returntrue; }
boolis_prime(int x){ if (x % 2 == 0) returnfalse; for (int i = 3; i <= sqrt(x); i += 2) { if (x % i == 0) { returnfalse; } } returntrue; }
intmain(){ std::ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int a, b; cin >> a >> b; // 再大的数都不可能是回文质数 b = min(9999999, b); for (int i = a; i <= b; i++) { if (is_palindrome(i) && is_prime(i)) { cout << i << endl; } } return0; }