유물/└ 백준

<백준(node.js)> 1978번: 소수 찾기

디벅잉 2022. 2. 22. 20:35
728x90

 

🤖

 

문제

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

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

 

풀이

const filePath = process.platform === "linux" ? "/dev/stdin" : "../input.txt";
const INPUT_ARR = require("fs").readFileSync(filePath).toString().trim().split("\n");

const Q_ARR = INPUT_ARR[1].split(" ").map(Number);
let countPrime = 0;

function isPrime(num) {
  if (num === 1) {
    return false;
  }
  if (num === 2) {
    return true;
  }
  for (let i = 2; i <= Math.floor(Math.sqrt(num)); i++) {
    if (num % i === 0) {
      return false;
    }
  }
  return true;
}

Q_ARR.forEach((num) => {
  if (isPrime(num)) countPrime += 1;
});

console.log(countPrime);

1. (line 7~20) 주어진 수의 제곱근까지 나누어 떨어지는 수가 없으면 소수라는 특징을 이용해서 소수를 판별합니다.

2. (line 22~24) 주어진 수의 배열을 forEach 메서드로 돌며 소수를 count 합니다.

 

📌

 

https://ant-programmer.tistory.com/2

 

[JavaScript] 소수 판별식

소수(Prime Number)를 판별하는데 여러가지 방법이 있는데 오늘은 내가 알고리즘 공부를 하면서 직접 찾아본 세 가지 방법을 정리하려한다. 1) 직접 나누어서 계산하기 2) N/2 까지만 나누어서 계산하

ant-programmer.tistory.com

 

728x90