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 형태로 변환