지난 풀이 참고
1 을 제외하고 2 부터 n까지의 수를 빈 배열 numbers 에 넣는다.n이 소수가 아니라면 1혹은 n 이 아닌 임의의 수 a와 b의 합성수이다. n 의 제곱근까지만 순회하는 루프를 만든다.numbers 배열에 존재하는 수num 의 제곱을 구한다.num의 제곱에서 num을 더한 수 j를 구한다.numbers[j-1] 을 삭제한다.n 미만의 모든 합성수를 지울 수 있다.function solution(n) {
    let answer = 0;
    let numbers = [];
    for(let i = 1; i <= n; i++) {
        numbers.push(i);
    }
    for(let i = 1; i*i < n; i++) { 
        if(numbers[i]) {                
            let num = numbers[i];       
            for(let j = num*num; j <= n; j += num) { 
                numbers[j-1] = 0;
            }
        }
    }
    numbers = numbers.filter((el) => {
        if(el) return el;
    })
    numbers.shift();
    answer = numbers.length;
    return answer;
}