728x90
문제 : https://www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
BufferedReader 를 활용해 입력을 받았고,
for 문을 통해 0부터 N 까지의 숫자를 searching 하며 문제의 조건을 만족하면 break 하는 구성으로 짜 보았다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int M=0; // M의 분해합은 N
for (int i=0;i<N;i++){ // 0부터 N까지의 수를 서칭
int num=i;
int sum=0; // sum에 합을 저장
while(num != 0){ // 더 이상 num을 못 나눌때 까지
sum += num%10;
num/=10;
}
// 생성자를 찾았을 경우
if (sum+i == N){
M=i; // M에 i값을 저장
break;
}
}
System.out.println(M);
}
}
728x90