본문 바로가기

JavaScript

[백준 JavaScript] 1929번 소수 구하기

https://www.acmicpc.net/problem/1929

 

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

www.acmicpc.net

 

<풀이>

const input = require("fs").readFileSync("/dev/stdin").toString();
const [m, n] = input.split(" ").map((it) => Number(it));

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

for (let i = m; i <= n; i++) {
  prime(i) ? console.log(i) : null;
}

 

1이면 false, 2부터 제곱근 전까지로만 나눴을 때 0이 되면 소수가 아니므로 false, 나머지는 true를 return하는 함수를 작성하여 m부터 n까지 함수를 적용하여 true를 반환하는 수만 출력해주면 된다