ALGORITHM

[JAVA] 백준 11653번- 소인수분해

연듀 2022. 7. 2. 15:16

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

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

 

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int i = 2;

        while (n >= i) {
            if (n % i == 0) {
                n = n / i;
                System.out.println(i);
            } else {
                i++;
            }
        }
    }
}

 

입력받은 숫자 n을  2부터 시작하는 i 로 나눈다. 

나머지가 0이면 i를 출력하고, n을 i로 나눈 값으로 n을 바꾼다.

나머지가 0이 아니면 i를 하나씩 증가시켜 n을 구한다.

n이 i보다 작아진다면 while문을 빠져나온다.