반응형
문제
정수 N이 주어졌을 때, 소인수 분해하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
테스트 케이스
입력 1
1000000
출력 1
2
2
2
2
2
2
5
5
5
5
5
5
입력 2
7
출력 2
7
입력 3
5000
출력 3
2
2
2
5
5
5
5
접근
1.수를 입력받습니다.
2. 순서대로 소인수 분해한 결과를 출력해줍니다.
하나의 증가하는 변수를 지정하여 반복문을 돌면서 지정한 변수로 나눠 떨어지는지 검사하면서 입력받은 값이 1이 될 때까지 반복합니다.
코드
import java.awt.desktop.SystemEventListener;
import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
/*
11653 problem
*/
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = Integer.parseInt(br.readLine());
int a = 2;
while(num !=1) {
if(num %a == 0) {
num /= a;
bw.write(a+"\n");
a=2;
}
else {
a++;
}
}
bw.flush();
br.close();
bw.close();
}
}
주의
반응형
'공부 정리 > 백준' 카테고리의 다른 글
[백준] 자바 8979 올림픽 (0) | 2021.09.17 |
---|---|
[백준] 자바 1026 보물 (0) | 2021.09.16 |
[백준] 자바 10867 중복 빼고 정렬하기 (0) | 2021.09.14 |
[백준] 자바 2822 점수 계산 (0) | 2021.09.13 |
[백준] 자바 11728 배열 합치기 (0) | 2021.09.10 |
댓글