Problem Solving/브루트포스

[백준-python] 2231번: 분해합

Dev_en 2022. 1. 24. 00:01
  • 분류 - 브루트포스
  • 난이도 - 브론즈2

주의사항

생성자를 발견하지 못했을 경우도 잊지 말고 작성해주어야 함


답안 코드

# 입력
n=int(input())

# 1부터 N까지의 수 중 생성자가 발견되면 생성자를, 발견되지 않으면 0을 출력
for i in range(1,n+1):
    sum=i # i의 분해합을 저장할 변수
    num=i # i의 각 자리의 숫자를 나타낼 변수
    
    # i의 분해합을 구함
    while num>0:
        sum=sum+num%10
        num=num//10
        
    # i가 n의 생성자면 i를 반복문을 탈출하고 i를 출력
    if sum==n:
        print(i)
        break
        
    # i가 반복문을 탈출하지 못한 채로 끝까지 반복을 수행했다면, 생성자를 발견하지 못한 것이므로 0을 출력
    if i==n:
        print(0)