주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
주어진 수들 중 소수의 개수를 출력한다.
제곱근까지 순회하면 시간복잡도를 줄일 수 있다.
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const arr = input[1].split(" ");
let answer = 0;
for (let i = 0; i < arr.length; i++) {
if (Number(arr[i]) == 1) continue;
let cnt = 0;
for (let j = 2; j <= Math.sqrt(Number(arr[i])); j++) {
if (Number(arr[i]) % j == 0) cnt++;
}
if (cnt == 0) answer++;
}
console.log(answer);