Coding Test/백준 - JAVA

백준 11653번 소인수분해 (JAVA)

6uiw 2024. 12. 30. 02:40

📌문제

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

입력

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

출력

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

예제 입력 

72

예제 출력 

2
2
2
3
3

 

 

 

 

📌답

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int n = Integer.parseInt(br.readLine()); 
        int i = 2;
        while(i*i<=n) {
            if(n%i==0) {
                sb.append(i+"\n");
                n=n/i;
            }
            if(n%i!=0) i++;
        }
        if(n!=1) sb.append(n);
        System.out.println(sb);
    }
}

 

📌코멘트

성능 최적화에 신경쓰자 

 

 

 

 

끝까지 읽어주셔서 감사합니다 :)

Have a good day🐱

 


📢

1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.