소수이자 펠린드롬을 찾는 알고리즘. n에 1을 무한히 더해가며 소수이자 펠린드롬일 경우 출력하면 된다. 단일 숫자의 소수 판정에는 최소 O(logN)이 소모되므로 펠린드롬인지 먼저 검사한 후 맞다면 소수를 검사하는 게 더 효율적일 것이다. 에라스토테네스의 체를 사용하려면 먼저 최대 입력값인 1000000보다 큰 소수이자 펠린드롬을 구한 후 판정해야하므로, 조금 더 접근이 어려울 수 있겠다.
n = int(input())
def is_prime_num(num) :
for i in range(2, int(num ** 0.5)+1) :
if num % i == 0 :
return False
return num != 1
def is_palindrome(num) :
num = str(num)
return num[::-1] == num
while True :
if is_palindrome(n) and is_prime_num(n) :
print(n)
exit()
n += 1