본문 바로가기
알고리즘/SWEA

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

by KDW999 2023. 5. 4.

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5Pl0Q6ANQDFAUq&categoryId=AV5Pl0Q6ANQDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=2 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

문제 접근

소인수분해는 소수의 곱으로 이루어진 수이기 때문에 구성하는 소수로 나눴을 때 해당 소수의 갯수만큼 나머지가 0으로 나온다.

 

반복문을 통해 해당 소수로 나머지가 0이 되지 않을 때 까지 나눠서 해당 소수가 몇 번 나오는 지 카운트해주고 더 이상 나머지가 0이 아니면 다음 소수를 카운트하러 간다.

 

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

public class Swea {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt(); // 테케
		
		for(int t=1; t<=T; t++) {
			int N = sc.nextInt();
			
			int eleven = 0;
			int seven = 0;
			int five = 0;
			int three = 0;
			int two = 0;
			
			  while(N % 11 == 0) {
				eleven++;
				N = N / 11;
			  }
			  while(N % 7 == 0) {
				seven++;
				N = N / 7;
			  }
			  while(N % 5 == 0) {
				five++;
				N = N / 5;
			  }
			  while(N % 3 == 0) {
				three++;
				N = N / 3;
			  }
			  while(N % 2 ==0) {
				two++;
				N = N / 2;
			  }
		    System.out.println("#"+t+" " + two +" " + three+" " + five+" " + seven +" " + eleven);
		}
     }
  }

댓글