Algorithm/백준

백준 [11653] 소인수분해 (JAVA)

youngjae-kim 2024. 8. 20. 19:04
728x90
반응형

문제

풀이

입력받은 N의 소수인 인수들을 구하는 문제이다.

 

√N까지 반복문을 돌면서 2부터 나누어 떨어지는 수가 있다면 떨어지지 않을 때까지 계속 해서 나누어 준다.

남은 수가 1이 아니라면 남은 수를 출력해야 나머지 수가 출력된다.

정답코드

package com.baekjoon.math.p11653;

import java.util.*;

public class Main {
    static int MAX_NUM = 10_000_000;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        StringBuilder sb = new StringBuilder();

        for (int i = 2; i <= Math.sqrt(N); i++) {
            while (N % i == 0) {
                N = N / i;
                sb.append(i + "\n");
            }
        }

        if (N != 1) {
            sb.append(N);
        }

        System.out.println(sb);
        sc.close();
    }
}
728x90
반응형