나의 개발일지

[백준] 1747 소수 & 팰린드롬 [Python, 파이썬] 본문

백준

[백준] 1747 소수 & 팰린드롬 [Python, 파이썬]

YoonJuHan 2024. 1. 3. 09:45
  • 문제 : https://www.acmicpc.net/problem/1747
  • 🔑 에라토스테네스의 체
    • 에라토스테네스의 체를 사용해 소수를 미리 구해둔다.
    • 최대 입력값인 1000000이 들어오면 1003001이 정답이므로 넉넉한 크기까지 구함
    • 구한 소수들을 n번부터 시작해서 순회하면서 팰린드롬인 소수를 찾는다.
    • 문자열[::-1]을 하면 문자열을 뒤집을 수 있음

 

n = int(input())

prime = [True] * (1_030_001)
prime[1] = False

for i in range(2, int(1_030_000 ** 0.5) + 1):
    if prime[i]:
        for j in range(i*2, 1_030_000 + 1, i):
            prime[j] = False

for i in range(n, len(prime)):
    if prime[i]:
        if str(i) == str(i)[::-1]:
            print(i)
            exit()
Comments