본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 1990번 소수인팰린드롬

by 현장 2022. 5. 9.

-Code

a, b = map(int, input().split())
if b > 10000000: b = 10000000
sieve = [False, False] + [True] * b
for i in range(2, int(b ** 0.5) + 1):
    if sieve[i]:
        for j in range(i * 2, b + 1, i):
            sieve[j] = False
Prime = [i for i in range(a, b + 1) if sieve[i]]
for num in Prime:
    num = str(num)
    if num == num[::-1]:
        print(num)
print(-1)

계속 메모리 오류가 나서 도저히 몰라서 게시판을 찾아보니 팰린드롬 수의 길이가 짝수인 경우 25377352와 같다면 11, 1001, 100001 등이 모두 11의 배수이기 때문에 11 하나를 제외하고는 짝수 길이 팰린드롬은 소수가 될 수 없다는 것을 알고 해결이 되었습니다.