즐거운 PS 👩‍💻🥰

[백준-파이썬] 1747번: 소수&팰린드롬

dalin❤️ 2021. 10. 8. 10:31
N=int(input())

L=[0]*1003002 #조건에서 N 최댓값이 1000000이라고 함. 그 이상 소수이고 펠린드롬 만족하는 가장 작은 수가 1003001임.
L[1]=1

#N 미만의 소수를 구함
for i in range(2,N):
    if L[i]==0:
        for j in range(i,1003002,i):
            L[j]=1

#N이상
for k in range(N,1003002):
    if L[k]==0: #j가 소수라면
        if str(k)==str(k)[::-1]: #펠린드롬인지 체크
            print(k)
            break
        else:
            for l in range(k,1003002,k):
                L[l]=1

에라토스테네스 체 방법으로 소수 구하는 것 공부한 후에, 관련된 문제 풀어보고 싶어서 풀었다~

L=[0]*1003002 #조건에서 N 최댓값이 1000000이라고 함. 그 이상 소수이고 펠린드롬 만족하는 가장 작은 수가 1003001임.
이 부분을 생각하는 게 가장 어려웠다.. !

728x90