문제 그대로 주어진 수를 소인수분해하는 문제다.
피제수가 2부터 시작하여, 주어진 수를 나눗셈 했을때 나머지가 0인 경우를 모두 추출하면된다.
피제수로 제수를 나눌때, 해당 피제수로 나눌 수 있는 최대치 만큼 반복하여 나눠야한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
//소인수분해
//N을 소인수분해하는 문제
public class BJ_11653 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int divisor = Integer.parseInt(br.readLine());
int dividend = 2;
while (divisor != 1) {
while(divisor % dividend == 0){ //해당 피제수로 나눌수 있는 만큼 나누기
divisor = divisor / dividend;
System.out.println(dividend);
}
++dividend;
}
}
}