백준 1747 파이썬 에라토스테네스의 체를 이용 팰린드롬
2024. 5. 29. 06:15ㆍ코딩 도구/백준
반응형
백준 1747 - 소수&팰린드롬
문제
https://www.acmicpc.net/problem/1747
답안 코드 :
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
def isPalindrome(target): # 펠린드롬 수 판별 함수
temp = list(str(target))
s = 0
e = len(temp) - 1
while (s < e):
if temp[s] != temp[e]:
return False
s += 1
e -= 1
return True
i = N
while True: # N부터 1씩 증가시키면서 소수와 팰림드롬 수가 맞는지 판별
if A[i] != 0:
result = A[i]
if (isPalindrome(result)):
print(result)
break
i += 1
생각 :
# 문제 분석
# 에라토스테네스의 체를 이용해 범위에 해당하는 모든 소수 구하기
# 구한 소수 중 팰린드롬 수를 찾기
# 팰린드롬 수를 판별할 때 숫잣값이 리스트 형태로 적절하게 변환이 가능하다.
# 위를 알면 더 쉽게 로직 구현 가능
# 문제 풀이
# 2 ~ 10,000,000 사이에 존재하는 모든 소수 구하기
# 그리고 나서 펠린드롬 수 구해야함
# 소수의 값을 리스트 형태로 변환하고
# 양 끝의 투 포인터를 비교하면 쉽게 펠린드롬 수 구할 수 있음
정수론 정리 글들
https://mkisos.tistory.com/entry/%EC%A0%95%EC%88%98%EB%A1%A0-%EC%98%A4%EC%9D%BC%EB%9F%AC-%ED%94%BC
반응형
'코딩 도구 > 백준' 카테고리의 다른 글
백준 11689 파이썬 오일러 피 (21) | 2024.05.31 |
---|---|
백준 1016 파이썬 에라토스테네스의 체 방식으로 제곱수의 배수 형태로 탐색 (25) | 2024.05.30 |
백준 1456 파이썬 거의 소수 (1) | 2024.05.28 |
백준 1929 파이썬 에라토스테네스 체 (0) | 2024.05.27 |
백준 1541 파이썬 그리디 생각해내기 (22) | 2024.05.26 |