[백준/파이썬] 9421번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 9421번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
백준 9421번 문제를 풀이합니다.
코드
`python n = int(input())
def prime_list(n): sieve = [True] * n
m = int(n ** 0.5)
for i in range(2, m + 1):
if sieve[i] == True:
for j in range(i+i, n, i):
sieve[j] = False
return [i for i in range(2, n) if sieve[i] == True]
pri = prime_list(n+1) sp = set(pri)
sang = set()
for num in pri: if num in sang : continue tmp = set() tn = num cnt = 0 while True: tmp.add(tn) tn = sum([int(i)**2 for i in list(str(tn))]) if tn == 1: sang |= tmp & sp break if tn in tmp or cnt > 100: break cnt += 1 sang = list(sang) sang.sort() print(“\n”.join(map(str, sang)))
```
설명
저장소의 기존 제출 코드를 기준으로 정리한 풀이입니다.
댓글남기기