λ§€μ° κ°λ¨νλ λ¬Έμ μλ€.
kμ§μλ‘ λ³ννλ transform ν¨μλ₯Ό μ μνκ³ λ°νλ°μ κ°μ μ κ·μμΌλ‘ μ«μλ₯Ό μΆμΆνλ€.
μλΌν μ€ ν λ€μ€ μ²΄λ‘ μμλ₯Ό νλ³νλ λ©μλλ μ μν΄μ μμλ₯Ό νλ³νκ³ , μ£Όμν μ μ λ¬Έμμ΄ μ«μκ° int λ²μλ₯Ό μ΄κ³Όνμ¬ μ΄μν λ΅μ λμΆν μ μμΌλ―λ‘ long νμ μΌλ‘ λ°μμ νμΈν΄μΌνλ€.
import java.util.*;
import java.util.regex.*;
class Solution {
public int solution(int n, int k) {
int answer = 0;
String num = transform(n,k);
Pattern pattern = Pattern.compile("[1-9]+");
Matcher matcher = pattern.matcher(num);
while(matcher.find()){
String target = matcher.group();
if(isPrime(Long.parseLong(target))){
answer++;
}
}
return answer;
}
boolean isPrime(long num){
if(num==1){
return false;
}
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i==0){
return false;
}
}
return true;
}
String transform(int num,int k){
StringBuilder result = new StringBuilder();
while(num!=0){
result.append(num%k);
num/=k;
}
return result.reverse().toString();
}
}