알고리즘 12

su glass·2022년 2월 26일
0

알고리즘 공부

목록 보기
12/19

소수 찾기

문제 설명

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

그리고 계속 알아본 결과 에라토스테네스의 체를 사용하면 쉽게 알 수 있다고 하여 그걸 공부하기로 했다.

profile
시작한 코딩 공부 노트

0개의 댓글