[백준/파이썬] 4673번 셀프 넘버 풀이

업데이트:



문제 정보


풀이

문제

1부터 10000까지의 수 중 생성자가 없는 셀프 넘버를 모두 출력하는 문제입니다.

코드

numbers = list(range(1, 10001))

for i in range(1, 10000):
    value = i + i %10
    while(i//10 > 0):
        i //= 10
        value += i %10
    try:
        numbers.remove(value)
    except ValueError:
        continue
    

for self_number in numbers:
    print(self_number)

설명

각 수의 생성값 d(n)을 계산해 목록에서 제거하고, 끝까지 남은 값들이 셀프 넘버입니다.



댓글남기기