class Solution {
public int solution(int n, int k) {
String n_k = toKBinary(n, k);
int res = 0;
String[] checks = n_k.split("0");
for(String check : checks){
if(check.equals("")) continue;
// 공백일때는 체크 안하고 넘어감
Long tmp = Long.parseLong(check);
if(isPrime(tmp)){
res++;
}
}
return res;
}
// K진수 변환
public String toKBinary(int n, int k) {
String res = "";
while(n > 0) {
res = n % k + res;
n /= k;
}
return res;
}
// 소수 여부를 판정
public boolean isPrime (long a){
if(a <= 1) return false;
for(int i = 2;i <= Math.sqrt(a);i++){
if(a % i == 0) return false;
}
return true;
}
}
Leave a comment