백준 에라토스테네스의 체 node.js

버건디·2023년 5월 31일
0

백준

목록 보기
54/75

문제 링크

- 내 풀이

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim();

let [N, K] = input.split(" ").map((str) => Number(str));

let numArr = Array(N + 1)
  .fill(true)
  .fill(false, 0, 2);
let count = 0;
let answer = 0;

for (let i = 2; i <= N; i++) {
  if (numArr[i]) {
    numArr[i] = false;
    count++;
    if (count === K) {
      answer = i;
      break;
    }
    for (let j = i * i; j <= N; j += i) {
      if (numArr[j]) {
        numArr[j] = false;
        count++;
        if (count === K) {
          answer = j;
          break;
        }
      }
    }
  }
}

console.log(answer);

K번째로 지워지는 수를 구하기 위해 따로 count 변수를 선언하고 카운트 해주었다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글