11653. 소인수 분해 [JAVA]

Nak.s·2023년 2월 2일
0

CodeTest

목록 보기
17/19

문제 그대로 주어진 수를 소인수분해하는 문제다.

피제수가 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;
        }
    }
}

11653 소인수 분해

profile
궁금함이 많은 개발자

0개의 댓글