[SWEA 1945] 간단한 소인수분해

업데이트:

문제

  • SWEA 1945번
  • 문제의 저작권은 SW Expert Academy에 있습니다.

접근방식

나눠줄 약수를 담을 배열 decimal을 만든 후, for문을 돌려서 차례대로 N을 나눠준다.
나머지가 0이 될때까지 나눠준 후, 배열 decimal의 순서에 맞게 나눈 횟수를 넣어주고 출력해주면 된다.

코드

package swea;

import java.util.Scanner;

public class Swea_1945 {
    public static void main(String[] args) {
        int[] decimal = { 2, 3, 5, 7, 11 };
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int i = 0; i < T; i++) {
            int N = sc.nextInt();
            int[] answer = new int[5]; //정답 담을 배열
             
            // 소인수분해 시작
            for (int k = 0; k < decimal.length; k++) {
                int dec = decimal[k]; // 소수
                int result = N;
                while (result % dec == 0) { // 나머지가 0일때까지
                    result = result / dec;
                    answer[k]++;
                }
            }
            System.out.print("#"+(i+1)+" ");
            for(int j=0; j<answer.length; j++) {
                System.out.print(answer[j]+" ");
            }
            System.out.println();
        }
    }
}

카테고리:

업데이트: