본문 바로가기

개발/algorithm

[백준 2231번] 분해합 - python

문제 링크

https://www.acmicpc.net/problem/2231

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

 

풀이 

- 완전 탐색 사용 

- 1부터 n까지 1씩 증가 시키면서 분해합을 구한 후 n이랑 같으면 출력하고 종료 

n = int(input())

check = False
for i in range(1, n):
  num = i 
  for j in str(i):
    num += int(j)
  if num == n:
    print(i)
    check = True 
    break

if not check:
  print(0)