반응형
1.Scanner를 이용한 방법
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for(int i=2; i<=N; i++){
while(N % i == 0){
N /= i;
System.out.println(i);
}
if(N == 1){
break;
}
}
sc.close();
}
}
2. BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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){
N /= i;
System.out.println(i);
}
if(N == 1){
break;
}
}
br.close();
}
}
소수를 구할 때와 다르게 소인수분해는 N % i == 0일 경우에 해당되므로 N % i == 0 일 때 반복해서 나눠주면 된다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1085 - 직사각형에서 탈출 (JAVA/ 자바) (0) | 2024.04.11 |
---|---|
[백준] 27323 - 직사각형 (JAVA/ 자바) (0) | 2024.04.10 |
[백준] 2581 - 소수 (JAVA/ 자바) (0) | 2024.04.08 |
[백준] 1978 - 소수 찾기 (JAVA/ 자바) (0) | 2024.04.06 |
[백준] 9506 - 약수들의 합 (JAVA/ 자바) (0) | 2024.04.05 |