function solution(n) {
const s = new Set();
for(let i=1; i<=n; i+=2){
s.add(i);
}
s.delete(1);
s.add(2);
for(let j=3; j<Math.sqrt(n); j++){
if(s.has(j)){
for(let k=j*2; k<=n; k+=j){
s.delete(k);
}
}
}
return s.size;
}
내 풀이
function solution(n) {
//1~n사이에 있는 소수의 개수 반환
function isPrime(m){
if(m ===1)return false
if(m === 2)return true
if(m % 2 === 0)return false
for(let i=3; i<=Math.sqrt(m); i=i+2){
//짝수 위에서 처리했으니까
if(m % i === 0)return false
}
return true
}
let answer=0;
for(let j=1; j<=n; j++){
if(isPrime(j))answer++;
}
return answer;
}