프로그래머스 - k진수에서 소수 개수 구하기 (2단계)
function solution(n, k) {
var answer = 0;
//n을 k진수로 변환한 숫자
var number = "";
//n을 k진수로 변환하는 과정
while (n > 0) {
var temp = n % k;
number = temp + number;
n = parseInt(n / k);
}
//0을 기준으로 숫자를 자르기 때문에 0으로 잘라서 배열을 만듬
var s = number.split("0");
//만든 숫자들 소수인지 확인
for (var i = 0; i < s.length; i++) {
if (s[i] == "") continue;
//숫자가 소수면 answer이 1씩 늘어남
if (checkNum(parseInt(s[i]))) {
answer++;
}
}
return answer;
}
function checkNum(num) {
//1이면 그냥 리턴
if (num == 1) return false;
//2부터 제곱근까지만 확인하면 됨
//2부터 제곱근까지 나머지가 0이 아니면 소수, 0인 경우가 있으면 소수가 아님
for (var i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) return false;
}
//for문을 통과하면 무조건 true 리턴
return true;
}
parseInt( )
String이든 다른 숫자형이든 상관 없이 정수형으로 변환하고자 할 때 사용