2022 KAKAO BLIND RECRUITMENT > K진수에서 소수 개수 구하기
https://programmers.co.kr/learn/courses/30/lessons/92335
https://tech.kakao.com/2022/01/14/2022-kakao-recruitment-round-1/
문제에 대한 해설은 카카오 신입공채 테크블로그의 해설이 워낙 잘 설명되어 있으므로, 이 글로 대체하겠습니다.
static Function<String, Long> stol = Long::parseLong;
public static int solution(int n, int k) {
String binaryString = Integer.toString(n, k);
StringTokenizer st = new StringTokenizer(binaryString, "0");
int cnt = 0;
while (st.hasMoreTokens()) {
long num = stol.apply(st.nextToken());
if (isPrime(num)) {
cnt++;
}
}
return cnt;
}
private static boolean isPrime(long n) {
if (n == 1) {
return false;
}
for (int i = 2; (long) i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}