1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)
n은 2이상 1000000이하의 자연수입니다.
입출력 예
n result
10 4
5 3
입출력 예 설명
입출력 예 #1
1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환
입출력 예 #2
1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환
function solution(n){
const Arr = new Array(n).fill(1)
Arr[0] = 0;
for(let i = 2; i*i <= n; i++){
for(let j = i*i; j <= n; j+=i){
Arr[j-1]=0;
}
}
return Arr.filter((el)=>el==1).length
맨 처음에 생각하였을때는 입력 받는 숫자를 2까지 각 각 나누고 그걸 1과 자신만으로 나누어 지는지 알아볼려고했지만 할수록 막혔다
그래서 어쩔 수 없이 다른 사람이 만든것을 보고 생각하여 만들었다
코딩 출처:
https://chaeyoung2.tistory.com/41
그리고 계속 알아본 결과 에라토스테네스의 체를 사용하면 쉽게 알 수 있다고 하여 그걸 공부하기로 했다.