[Programmers/Java] k진수에서 소수 개수 구하기

Jake·2022년 2월 21일
0

PS

목록 보기
3/14
import java.util.Arrays;

class Solution {
        public int solution(int n, int k) {
            return (int)Arrays.stream(toBinaryString(n, k).split("0"))
                    .filter(p -> isPrime(p))
                    .count();
        }

        public String toBinaryString(int n, int k) {
            StringBuilder sb = new StringBuilder();
            while(n > 0) {
                sb.append(n%k);
                n /= k;
            }
            return sb.reverse().toString();
        }

        public boolean isPrime(String p) {
            try {
                long num = Long.parseLong(p);
                if(num < 2) return false;
                for(int i = 2; i <= Math.sqrt(num); i++) {
                    if (num % i == 0)
                        return false;
                }
                return true;
            } catch (NumberFormatException e) {
                return false;
            }
        }
    }
profile
Java/Spring Back-End Developer

0개의 댓글