에라토스테네스의 체를 이용한 문제
일차원 배열의 크기를 왜 저렇게 설정하는 건지 모르겠다 ..
# 소수 & 팰린드롬
# 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. N보다 크거나 같고, 소수이면서 팰린드롬인 수 중에서, 가장 작은 수를 구하는 프로그램을 작성하시오.
# 첫째 줄에 N이 주어진다.
# 첫째 줄에 조건을 만족하는 수를 출력한다.
def Pal(x):
num = str(x)
mid = len(num) // 2
for i in range(mid):
if num[i] != num[-i - 1]:
return False
return True
import math
n = int(input())
a = [0] * 10000001
for i in range(2, len(a)):
a[i] = i
for i in range(2, int(math.sqrt(len(a))) + 1): # 시간복잡도를 위해 제곱근까지만 수행
if a[i] == 0:
continue
for j in range(i + i, len(a), i):
a[j] = 0
while True:
if a[n] != 0:
if Pal(n) == True:
print(n)
break
n += 1
'Code > Python' 카테고리의 다른 글
[Python] 백준 1016 제곱 ㄴㄴ 수 (0) | 2023.10.25 |
---|---|
[Python] 백준 1456번 거의 소수 (0) | 2023.10.25 |
[Python] 백준 1929번 소수구하기 (0) | 2023.10.24 |
[Python] 백준 1541번 잃어버린 괄호 (0) | 2023.10.23 |
[Python] 백준 1931번 회의실 배정 (1) | 2023.10.23 |