[JAVA/백준] 수학 3: 소인수분해

👀 문제

https://www.acmicpc.net/problem/11653

👊 도전

1. 설계

  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. 설명

  1. n을 2부터 차례대로 나눠본다
    • 소인수분해가 몇 번 진행되는지 알 수 없으므로 while문을 사용하고, n==1일 때 while문을 종료한다.
    • i는 n을 소인수분해하는 값으로 2부터 시작한다.
    • n이 i로 나누어떨어지면 i를 출력하고 다음 사용을 위해 2로 초기화한다.
    • 나누어떨어지지 않는다면 i++하여 다음 i로 비교해본다.

👏 해결 완료!