Prime Palindrome

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution:
    def primePalindrome(self, N: int) -> int:
        if 8 <= N <= 11:
            return 11
        for x in range(1, 100000):
            s = str(x)
            r = s[::-1]
            y = int(s + r[1:])
            if y >= N and self.isPrime(y):
                return y
        return -1

    def isPrime(self, num: int) -> bool:
        if num < 2 or num % 2 == 0:
            return num == 2
        for i in range(3, int(num ** 0.5) + 1, 2):
            if num % i == 0:
                return False
        return True