본문 바로가기

문제풀이/백준 문제

BackJoon_2231 분해합

import java.util.Scanner;

public class DecompositionAndSum {
	public static void main(String[] args) {
		// 1. 입력받기 위해 스캐너를 생성한다.
		Scanner sc = new Scanner(System.in);
		
		// 2. 분해합을 입력받는다.
		int N = sc.nextInt();
		if(N<1 || N>1000000) {
			return;
		}
		
		// 3. 분해합의 가장 작은 생성자를 구한다.
		int M=0;
		for(int i=1; i<N; i++) {
			String num = Integer.toString(i);
			int sum = i;
			for(int j=0; j<num.length();j++){
				char k = num.charAt(j);
				sum+=Integer.parseInt(String.valueOf(k));
			}
			if(sum==N) {
				M=i;
				break;
			}
		}
		
		// 4. 출력
		System.out.println(M);
	}
}

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