866. Prime Palindrome
Read the full problem statement on LeetCode.
Difficulty: medium Acceptance: 27% Topics: Math, Number Theory
View full problem on LeetCode Reading material
Reference solution (spoiler · python)
# Time: O(n^(1/2) * (logn + n^(1/2)))
# Space: O(logn)
class Solution(object):
def primePalindrome(self, N):
"""
:type N: int
:rtype: int
"""
def is_prime(n):
if n < 2 or n % 2 == 0:
return n == 2
return all(n % d for d in xrange(3, int(n**.5) + 1, 2))
if 8 <= N <= 11:
return 11
for i in xrange(10**(len(str(N))//2), 10**5):
j = int(str(i) + str(i)[-2::-1])
if j >= N and is_prime(j):
return j
Solution from kamyu104/LeetCode-Solutions · MIT
Similar questions