P1217 回文质数66分求调

P1217 [USACO1.5] 回文质数 Prime Palindromes

曹竣杰2014 @ 2024-07-11 17:58:41

include<iostream>

include<cmath>

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中没有符合条件的数。


|