[백준4948_자바스크립트(javascript)] - 베르트랑 공준

경이·2024년 11월 11일

𝑩𝑶𝑱 (𝒋𝒔)

목록 보기
252/325

🔴 문제

베르트랑 공준


🟡 Sol

const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'input.txt';
const inputs = fs
  .readFileSync(path)
  .toString()
  .trim()
  .split('\n')
  .map(Number);

const size = 123457 * 2;
const map = Array(size).fill(false);

for (let i = 2; i < Math.sqrt(size, 2); i++) {
  if (map[i]) continue;

  for (let j = i * i; j < size; j += i) {
    map[j] = true;
  }
}

for (const input of inputs.slice(0, -1)) {
  let cnt = 0;

  for (let i = input + 1; i <= input * 2; i++) {
    if (!map[i]) cnt += 1;
  }
  console.log(cnt);
}

🟢 풀이

⏰ 소요한 시간 : -

에라토스테네스의 체 로직을 이용해 2n까지 소수인지, 아닌지를 판단해준다. 그 후 입력되는 값에 따라 소수판별배열 map을 통해 n부터 2n사이에 소수가 몇 개 있는지 세어 출력해주면 된다.


🔵 Ref

profile
록타르오가르

0개의 댓글