
해결
- 소인수분해는 소수인 인수로 분해하는 것을 말하며, 그렇기에 출력되는 소수의 범위는 입력값의 제곱근 이하로 볼 수 있다. ⇒
Math.sqrt()
이용하기
코드
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<=Math.sqrt(num); i++) {
while(num % i == 0) {
sb.append(i + "\n");
num /= i;
}
}
if( num != 1) {
sb.append(num);
} else {
System.out.print(sb);
}
}
}