曹竣杰2014 @ 2024-07-11 17:58:41
using namespace std;
bool isPalindrome(int num) {
long long reversedNum = 0, originalNum = num;
while (num > 0) {
reversedNum = reversedNum * 10 + num % 10;
num /= 10;
}
return originalNum == reversedNum;
}
bool isPrime(int n) {
if (n <= 1) return false;
if (n == 2 || n == 3) return true;
if (n % 2 == 0) return false;
for (int i = 3; i <= sqrt(n); i += 2) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int a, b;
cin >> a >> b;
if (a < 5) a = 5;
if (b > 100000000) b = 100000000;
for (int i = a; i <= b; i++) {
if (isPrime(i) && isPalindrome(i)) {
cout << i << endl;
}
}
return 0;
}
by syy999 @ 2024-07-15 18:42:35
1.先判断回文。因为回文快。不过恭喜你,#9还是TLE。 2.if(b>10^7) b=10^7 因为偶数位的回文数只有11,所以10^7~10^8中没有符合条件的数。