- 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);
}
}
'백준 > JAVA' 카테고리의 다른 글
[백준/JAVA] 2292번 벌집 (0) | 2023.01.21 |
---|---|
[백준/JAVA] 9020번 골드바흐의 추측 (0) | 2023.01.21 |
[백준/JAVA] 1978번 소수 찾기 (0) | 2023.01.19 |
[백준/JAVA] 2775번 부녀회장이 될테야 (0) | 2023.01.19 |
[백준/JAVA] 2839번 설탕 배달 (0) | 2023.01.19 |