안녕하세요.
이번 문제는 백준 2231 분해합 문제입니다.
파이썬으로 풀어보겠습니다.
링크는 다음과 같습니다.
https://www.acmicpc.net/problem/2231
풀이
분해합을 구하기 위해서는, 숫자 + 숫자 각 자리 수의 합 을 구하면 됩니다.
파이썬을 이용하면, 숫자를 문자열로 변환 후, map 함수를 이용해서 한 글자씩 int로 바꿔준다면 간단하게 구할 수 있습니다.
1부터 시작해서 주어진 숫자가 될 때까지 반복문을 돌리고, 그 숫자로 생성자를 구할 수 있으면 멈추면 되겠습니다. (최솟값)
코드로는 이렇게 되겠네요.
import sys
def sum_digit(n):
return sum(map(int, str(n))) # 각 자리수의 합 반환
N = int(sys.stdin.readline())
answer = N
for i in range(1, N):
if (i + sum_digit(i)) == N:
if answer > i:
answer = i
if answer == N:
answer = 0
print(answer)
감사합니다.
'백준 문제풀이 > 브루트포스' 카테고리의 다른 글
백준 1018 Python / 체스판 다시 칠하기 / 실버4 (0) | 2023.02.06 |
---|