소인수분해(11653)

문제

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오

입력

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

출력

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.

예제 입력

72

예제 출력

2
2
2
3
3

예제 입력2

3

예제 출력2

3

예제 입력3

6

예제 출력3

2
3

예제 입력4

2

예제 출력4

2

예제 입력5

9991

예제 출력5

97
103

풀이

import java.io.*;

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());
        for(int i=2; i<=N; i++){
            while(N%i==0){
                System.out.println(i);
                N = N/i;
            }
        }
    }
}

소인수 분해를 사용하는 기본적인 사용법을확인하는 문제였다.

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

Last updated

Was this helpful?