k진수에서 소수 개수 구하기

LJM·2023년 8월 10일
0

programmers

목록 보기
52/92

k진수에서 소수 개수 구하기

이 문제는 1이 소수가 아니라는것
그렇다면 0으로 구분지으면 풀 수 있는 문제라는 생각이 들었다

그래서 글자로 바꿔서 0으로 split("0") 으로 분할해주고 소수판별해서 풀었다

import java.util.*;

class Solution {
    public int solution(int n, int k) {

        List<Integer> list = new ArrayList<>();
        while(n>=k){

            list.add(n%k);
            n/=k;
        }
        list.add(n);
        Collections.reverse(list);

        StringBuilder sb = new StringBuilder();
        for(int i : list){
            sb.append(i);
        }

        String[] num = sb.toString().split("0");

        int answer = 0;

        for(String ele : num){

            if(ele.isEmpty()==false && isPrime(ele))
                answer++;

        }

        return answer;
    }

    public boolean isPrime(String num){

        long n = Long.parseLong(num);

        if(n < 2)
            return false;

        for(Long i = 2L; i <= Math.sqrt(n); ++i){

            if(n%i == 0)
                return false;
        }

        return true;
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글