본문 바로가기
python3/백준문제풀이

[백준/python3] 2231_분해합(brute force)

by MeaninGood 2022. 1. 16.

 

 

def d(n) : # 분해합 구하는 함수 만들기 d(245)
    a = n + sum(map(int, str(n))) # 256 = 245 + 2 + 4 + 5
    return a # 256 출력

N = int(input()) # 입력칸
Nlist = list(range(N+1))  # 입력 받은 숫자까지의 리스트 생성

for i in Nlist : # Nlist를 돌며 하나씩 확인해줄 것임
    if d(i) == N : # 위에 만들어 준 함수 d(i)가 N과 같을 경우
        # 즉, N에 256 입력
        # d(i)는 Nlist를 돌며
        # 245 + 2 + 4 + 5 = 256에서 멈출 것임
        # d(245) = 256 이 되므로
        print(i) # 245 출력함
        break
    
if d(i) not in Nlist : # 만약 d(i)가 Nlist에 없다면
    # 즉 생성자가 없는 숫자라면
    print(0) # 0을 출력함