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
'즐거운 PS 👩💻🥰' 카테고리의 다른 글
[코드업-파이썬] 100제: 6012번 (0) | 2021.10.08 |
---|---|
[백준-파이썬] 1929번: 소수 구하기 (0) | 2021.10.08 |
[백준-파이썬] 2805번: 나무 자르기 (0) | 2021.10.08 |
[백준-파이썬] 4454번: 상근이의 여자친구 (0) | 2021.10.08 |
[백준-파이썬] 16505번: 별 (0) | 2021.10.08 |