[프로그래머스] 소수 찾기

GoGoDev·2021년 6월 13일
0

Programmers Lv.1🌱

목록 보기
32/46

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;    
}
profile
🐣차근차근 무럭무럭🐣

0개의 댓글