[1929] 소수 구하기 _ node.js

박서현·2023년 8월 4일
0
post-thumbnail

🍏1929_소수 구하기

🔻나의 풀이

// let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let input = require('fs').readFileSync('txt/1929.txt').toString().split('\n');
let [start, end] = input[0].split(' ').map(Number);


//end+1 까지의 배열을 만든 뒤 true로 채운다.
let array = new Array(end+1).fill(true);
//0, 1은 소수가 아니므로 flase
array[0] = array[1] = false;

//에라토스테네스의 체
for(let i = 2; i <= Math.sqrt(end); i++) {
    if(array[i]) {
        for(let j = i * i; j <= end; j += i) {
            array[j] = false;
        }
    }
}

//true인 요소 인덱스 출력
for(let i = start; i <= end; i++) {
    if(array[i]) {
        console.log(i);
    }
}

제곱근까지 확인했을 때 약수가 1만 있으면 소수이다.

0개의 댓글