상세 컨텐츠

본문 제목

백준 알고리즘 11653번 : 소인수분해

Programming/Algorithms

by 홍잭슨 2021. 1. 10. 16:57

본문

소인수분해 성공분류

1 초 256 MB 19429 10526 8295 53.679%

문제

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

입력

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

출력

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

답안

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.*;

public class Main {
    //baekjoon #11653
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int input = Integer.parseInt(bf.readLine());
        List<Integer> list = new ArrayList<>();
        int num = 2;
        if(input==1)return;
        while(input!=1){
            if(input%num==0){
                input /= num;
                list.add(num);
            }else{
                num++;
            }
        }
        for(int i : list){
            System.out.println(i);
        }
    }
}

관련글 더보기