728x90
문제 번호: 2231
문제 제목: 분해합
문제 주소: https://www.acmicpc.net/problem/2231
문제 내용
분해합은 숫자 i에 i의 각 자리 수를 모두 합한 값을 의미한다. i를 분해합하여 N이 나오는 경우 i는 N의 생성자라 한다.
입력된 수 N의 생성자를 출력한다.
테스트 케이스
1 |
0 |
2 |
1 |
216 |
198 |
999999 |
999954 |
1000000 |
0 |
문제 풀이
브루트 포스로 푸는 문제지만, 1부터 시작하는건 매우 비효율적이므로 범위를 어느 정도 좁힐 필요가 있다.
생성자 수 + 생성자의 각 숫자를 모두 합해서 N이 나와야 하므로 (N - 자리수 * 9) ~ (N - 1) 이 탐색 범위가 된다.
10 이하인 수는 짝수에게만 생성자가 있으므로 그에 맞춰 코드를 작성하면 된다.
풀이 코드
728x90
'공부 > 문제풀기' 카테고리의 다른 글
백준 7568 - 덩치 (0) | 2019.08.08 |
---|---|
프로젝트 오일러 문제 18 (0) | 2019.08.07 |
백준 2798 - 블랙잭 (0) | 2019.08.07 |
백준 1002 - 터렛 (0) | 2019.08.06 |
백준 3053 - 택시 기하학 (0) | 2019.08.06 |