[백준1929_자바스크립트(javascript)] - 소수 구하기

경이·2024년 8월 3일

𝑩𝑶𝑱 (𝒋𝒔)

목록 보기
103/325

🔴 문제

소수 구하기


🟡 Sol

const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const [a, b] = fs.readFileSync(path).toString().split(' ').map(Number);

const isPrimeNumber = (n) => {
  if (n === 1) return false;
  for (let i = 2; i <= Math.sqrt(n); i++) {
    if (n % i === 0) return false;
  }
  return true;
};

for (let i = a; i <= b; i++) {
  if (isPrimeNumber(i)) console.log(i);
}

🟢 풀이

⏰ 소요한 시간 : 10분

처음에는 일반적인 소수 판별로 문제를 풀이했는데 시간초과가 발생했다.
따라서 약수의 특징을 활용해 제곱근까지만 소수를 판별해줬더니 맞았습니다.
물론 이 방법도 정답이지만 nm의 범위를 보니 에라토스테네스의 체를 사용하는 것이 더 적합해 보인다. 소수판별에 대한 전체적인 알고리즘은 여기에 포스팅했다.


🔵 Ref

profile
록타르오가르

0개의 댓글