본문 바로가기
알고리즘/백준

[Python]2231_분해합

by 박 현 황 2022. 4. 26.

문제링크

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

 

2231번: 분해합

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

www.acmicpc.net

 

 

 

 

-> 생성자가 없는 경우에는 0을 출력하는 부분에 유의해서 풀면 될 듯하다.

 

 

 

 

N = int(input())
able = False

for i in range(N):
    M = i+1
    temp = i+1
    number = str(i+1)
    for j in range(len(number)):
        temp +=int(number[j])
    if(temp == N):
        able = True
        break

if able==True:
    print(M)
else:
    print(0)

 

 

숫자가 1,000,000 까지 있어서 %10 %100으로 나누기가 힘들 것 같아서

문자열로 풀어봤다.

 

 

'알고리즘 > 백준' 카테고리의 다른 글

[Python]7568_덩치  (0) 2022.05.02
[Python]2798_블랙잭  (0) 2022.04.26
[Java] 백준_4101_크냐?  (0) 2021.12.01
[JAVA] 백준_1926_그림  (0) 2021.11.16
[JAVA]백준_11909_배열탈출  (0) 2021.10.18