-
백준 1956번)브루트포스- 분해합알고리즘/백준 2021. 8. 16. 11:06
https://www.acmicpc.net/problem/2231
자연수 n이 주어질때, n =m+ m각자릿수의 합이 이루어질 때, m 은 n의 생성자, n은 m의 분해합이다.
생성자를 구하는 문제였다.
가장 작은 생성자를 구하는 문제로, 1부터 n까지 실행해서 가장 작은 생성자가 나오면 Break하도록 하였다.
각자릿수의 합을 구할때, while문의 /100...의 형식이 아닌
list sum을 이용하자!
n = int(input()) result = 0 for i in range(1, n+1): a = list(map(int, str(i))) result = i + sum(a) if n == result: print(i) break if i ==n: print(0)
'알고리즘 > 백준' 카테고리의 다른 글
백준 14889) 스타트와 링크 (실버.2) (0) 2022.07.14 백준 3190) 뱀 (골드.4) (0) 2022.07.13 백준 14499) 주사위 굴리기 (골드.4) (0) 2022.07.13 백준 1956번) 최단경로 - 운동 (0) 2021.01.29 백준 1904번) 동적계획법 1 - 01.타일 (0) 2021.01.29