반응형
https://www.acmicpc.net/problem/11653
- 문제
- 문제 풀이
백준 11653번 소인수분해는 브론즈 1 난이도의 수학 문제이다. 이 문제는 되게 간단하다. 숫자 N이 주어졌을 때 이 N을 소인수 분해한 결과를 출력하면 된다. 예를 들어서 6이 주어지면 2와 3을 출력하면 된다.
이 문제는 간단한 while-loop을 이용해서 풀 수가 있다. 우선 n을 1이 될때까지 나눠야 하기 때문에 while-loop이 종료되는 기준은 n == 1이라고 설정한다. 따라서, while (n != 1)로 한다.
그리고 int i = 2로 초기화해서 선언하고 이 n이 i로 나눠지면 n을 i로 나누고 출력하는 과정을 반복하면 된다. 만약에 n이 i로 나눠지지 않는다면 i는 1씩 증가해주고 loop을 계속해서 하면 된다.
자세한 코드는 밑에 있는 코드를 참고하면 되겠다.
- 코드
import java.io.*;
import java.util.*;
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());
StringBuilder sb = new StringBuilder();
int i = 2;
//n이 1이 될 때까지 반복
while (n != 1) {
// i가 n의 약수이면 나누고 출력
if (n % i == 0) {
n/= i;
sb.append(i + "\n");
} else {
i++;
}
}
System.out.print(sb);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 2475번 : 검증수 – JAVA [자바] (0) | 2022.07.31 |
---|---|
[백준] 4153번 : 직각삼각형 – JAVA [자바] (0) | 2022.07.31 |
[백준] 10757번 : 큰 수 A+B – JAVA [자바] (0) | 2022.07.31 |
[백준] 10845번 : 큐 – JAVA [자바] (0) | 2022.07.26 |
[백준] 2752번 : 세수정렬 – JAVA [자바] (0) | 2022.07.26 |
댓글