문제 접근
소인수분해는 소수의 곱으로 이루어진 수이기 때문에 구성하는 소수로 나눴을 때 해당 소수의 갯수만큼 나머지가 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);
}
}
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA / 아름이의 돌 던지기 / JAVA → C++] (0) | 2023.05.08 |
---|---|
[SWEA / 새로운 불면증 치료법 / JAVA] (1) | 2023.05.08 |
[SWEA / 날짜 계산기 / JAVA] (1) | 2023.05.03 |
[SWEA / 두 개의 숫자열 / JAVA] (0) | 2023.05.02 |
[SWEA / 숫자 배열 회전 / JAVA] (0) | 2023.05.01 |
댓글