치춘짱베리굿나이스

[백준] 1978 본문

소수 찾기

문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

입력

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

출력

주어진 수들 중 소수의 개수를 출력한다.

풀이

const prime = () => {
  let input = require("fs")
    .readFileSync("/dev/stdin")
    .toString()
    .trim()
    .split("\n")[1]
    .split(" ")
    .map(Number);
  let eratos = Array.from({ length: 1001 }, (n, i) => (i === 1 ? false : true));
  for (let i = 2; i < 38; i++) {
    if (eratos[i]) for (let j = 2; j < 501; j++) eratos[i * j] = false;
  }
  let ans = 0;
  for (let i of input) if (eratos[i]) ans++;
  console.log(ans);
};

prime();

반성회

처음엔 ans를 배열로 선언하고 eratos[i]true일 경우 ansipush해서 마지막에 ans.length를 출력했는데 계속 틀렸습니다 나와서 그냥 ans++해주는 식으로 개수 셌더니 맞았다

이유를모르겠네

'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글

[백준] 1193  (0) 2022.02.11
[백준] 1712  (0) 2022.02.11
[백준] 4344  (0) 2022.02.11
[백준] 4673  (0) 2022.02.11
[백준] 1065  (0) 2022.02.11
Comments