[백준] 1978 소수 찾기 - Node.js

송철진·2023년 5월 13일
0

백준-Node.js

목록 보기
62/69

문제

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

solution

const fs = require('fs')
const input = fs.readFileSync('/dev/stdin').toString().trim()
                .split('\n')[1].split(' ')

const solution = (input) => {
  let count = 0
  for(let i=0; i<input.length; i++){
      const v = +input[i]
      if(v === 2 || v === 3){
          count++
      }else{
          const end = parseInt(Math.sqrt(v))
          for(let j=2;j<=end;j++){
              if(v % j === 0){
                  break;
              }else if(j>end-1){
                  count++
              }
          }
      }
  }  
  return count
}

console.log(solution(input))

소수는 1과 자기 자신만을 약수로 가지는 수이다.
순회 횟수를 줄이기 위해 Math.sqrt()를 사용하여 제곱근이하의 숫자까지만 나머지 연산을 실행한다.

2와 3은 제곱근이 2보다 작아서 for문 순회에서 제외되므로 따로 조건문을 작성했다.

profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글