[SWEA] JAVA / D2 - 간단한 소인수분해

경운·2025년 10월 30일

SWEA

목록 보기
2/4
post-thumbnail

SWEA - 간단한 소인수분해

문제 분석

숫자 N은 아래와 같다

이떄 a,b,c,d,e 구하는 문제 이다

  • N의 크기는 2 이상 10,000,000이하

입력

  • 첫 줄에는 테스트 케이스의 개수 T
  • 각 테스트 케이스의 첫 번째 줄에 N

출력

  • 출력의 각 줄은 #t로 시작하고, 공백을 한 칸 둔 다음 정답을 출력

코드 구현

import java.util.*;
import java.io.*;

public class No_1945 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
		
		for(int i = 0; i < T; i++) {
			int N = Integer.parseInt(br.readLine());
			
			int a = 0;
			int b = 0;
			int c = 0;
			int d = 0;
			int e = 0;
			
			while (N % 2 == 0) {
				a++;
				N /= 2;
			}
			
			while (N % 3 == 0) {
				b++;
				N /= 3;
			}
			
			while (N % 5 == 0) {
				c++;
				N /= 5;
			}
			
			while (N % 7 == 0) {
				d++;
				N /= 7;
			}
			
			while (N % 11 == 0) {
				e++;
				N /= 11;
			}
			System.out.print("#" + (i + 1) + " " + a + " " + b + " " + c + " " + d + " " + e);
		}
	}
}

💡문제 풀이

우선 문제를 보면 a,b,c,d,e를 구해야하니까 N들의 수는 2,3,5,7,11로 나눠떨어지는 수이다
따라서 N이 해당 숫자로 더 이상 나눠지지 않을 때까지 계속 나누는 것이다

0개의 댓글