백준/JAVA
[백준/JAVA] 11653번 소인수분해
누룽지맛치킨
2023. 1. 20. 09:34
- N을 소인수분해하는 문제
https://www.acmicpc.net/problem/11653
1. 문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
2. 문제 접근
1) 정수 N을 입력받는다.
2) StringBuilder에 가장 작은 소수부터 시작하여 소인수들을 append한다.
- 소수가 아닌 것들은 그것보다 작은 소수에 의해서 이미 나누어지기 때문에 자동적으로 반복문에서 통과된다.
3. 코드
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
if(num==1) {
return;
}
StringBuilder sb = new StringBuilder();
for(int i=2;i<=num;i++) {
if(num%i==0) {
sb.append(i).append("\n");
num/=i;
i--;
}
if(num==1)
break;
}
System.out.print(sb);
}
}