문제설명:
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
function isPrime(num) {
for(let i = 2; i <= Math.sqrt(num); i++) {
if(num % i === 0) {
return false;
}
}
return true;
}
function solution(n) {
let count = 0;
for(let i = 2; i <= n; i++) {
if(isPrime(i)) {
count = count + 1;
}
}
return count;
}
문제풀이
1부터 n사이에 있는 소수의 개수를 반환해야하기 때문의 소수의 개수를 세어줄 변수 count를 선언하고 반복문을 통해 접근하는데 1은 소수가 아니므로 제외하고 2부터 시작한다. i가 소수인지 여부를 판정하는 것은 isPrime 함수를 만들어 해당 함수를 호출하여 판정한다. i가 소수면 count에 1을 더해주고 소수가 아니면 다음으로 넘어간다. 반복문을 모두 실행하면 최종count를 리턴한다.