https://programmers.co.kr/learn/courses/30/lessons/12921
function solution(n) {
var answer = 0;
var count = 0;
for(let i = 2; i <= n; i++){
for(let j = 1; j <= i; j++){
if(i % j === 0){
count++;
}
}
if(count === 2)
answer++;
count = 0
}
return answer;
}
이 코드는 테스트 케이스만 맞고 시간초과와 효율성에서 떨어졌다.
소수 찾기에 대표적인 방법은 에라토스테네스의 체를 사용하는 것이다.
function solution(n) {
var arr = Array(n+1).fill(true).fill(false, 0,2);
for(let i = 2; i * i <= n; i++){
if(arr[i]){
for(let j = i * i; j <= n; j += i){ // j += i가 중요
arr[j] = false;
}
}
}
var answer = arr.filter(i => i === true).length;
return answer;
}