👀 문제
https://www.acmicpc.net/problem/11653
👊 도전
1. 설계
- n을 2부터 차례대로 나눠본다.
2. 구현 (성공 코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
/**
* @author HEESOO
*
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int i=2;
while(n!=1) {
if(n%i==0) {
System.out.println(i);
n/=i;
i=2;
}
else
i++;
}
}
}
3. 결과
🤟 성공 🤟
4. 설명
- n을 2부터 차례대로 나눠본다
- 소인수분해가 몇 번 진행되는지 알 수 없으므로 while문을 사용하고, n==1일 때 while문을 종료한다.
- i는 n을 소인수분해하는 값으로 2부터 시작한다.
- n이 i로 나누어떨어지면 i를 출력하고 다음 사용을 위해 2로 초기화한다.
- 나누어떨어지지 않는다면 i++하여 다음 i로 비교해본다.