Algorithm & Data Structures/Programers
Lv 2. pK진수에서 소수 개수 구하기
Geisha
2024. 6. 22. 23:17


어떠한 정수 N이 있을 때 N을 k진수로 바꾸는 방법은 의외로 쉬웠다.
toString(N,k); 를 하게되면 N이 k 진수로 변환된 채로 문자열로 반횐되었다.
그리고 소수를 구하는 빠른 방법 중에서 내가 아는것은 제곱근까지의 나눗셈이었기 때문에 spilt을 활용하여 나온 문자열을 toLong 으로 변환하여 그 숫자를 제곱근 까지 나누어서 소수판별을 하였다.
import java.util.*;
class Solution {
public int solution(int n, int k) {
int answer = 0;
String number = Integer.toString(n,k);
String[] numbers = number.split("0");
for(String s : numbers){
if(s.equals("")) continue;
Long a = Long.parseLong(s);
boolean find = true;
if(a==1) continue;
for(int i = 2; i <= Math.sqrt(a); i++){
if(a%i==0){
find = false;
break;
}
}
if(find) answer++;
}
return answer;
}
}
Integer
-toString(a,b) : a를 b진수로 변환
Math
-sqrt(a) : a 의 제곱근을 반환
String
-split("a") : "a"라는 문자열을 기준으로 잘라서 String[]에 저장
Long
-parseLong : 문자열을 Long 형태로 변환