코딩 테스트/프로그래머스 level2

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

fullfish 2022. 9. 12. 01:41

코드

function solution(n, k) {
  return n
    .toString(k)
    .split("0")
    .filter((ele) => isPrime(parseInt(ele))).length;
}
function isPrime(num) {
  if (num <= 1 || isNaN(num)) {
    return false;
  }
  //짝수중 2는 유일한 소수
  if (num % 2 === 0) {
    return num === 2 ? true : false;
  }

  const sqrt = parseInt(Math.sqrt(num));

  for (let i = 3; i <= sqrt; i += 2) {
    if (num % i === 0) {
      return false;
    }
  }

  return true;
}