// 소수 찾기
let fs = require('fs');
// let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n'); // 제출용
let input = fs.readFileSync('input.txt').toString().trim().split('\n'); // vscode 테스트용
const N = Number(input[0]);
const arr = input[1].split(' ').map(Number);
const sol = (N,arr) =>{
let cnt = 0;
for (let i = 0; i < arr.length; i++) {
if(isPrime(arr[i])) cnt++;
}
console.log(cnt);
}
const isPrime = (n) =>{
if(n <= 1) return false; // 음수와 1은 소수가 아니다
if(n % 2 === 0 ){ // 2로 나누어지는 경우
return n === 2 ? true : false; // 2는 짝수 중 유일한 소수
}
for (let i = 3; i <= Math.floor(Math.sqrt(n)); i++) {
if(n%i === 0) return false;
}
return true;
}
sol(N, arr);
√n 값으로 나누어 떨어지면 √n의 배수라는 뜻이므로 소수가 아니게 됩니다. 그러므로 최소√n값까지만 판별하면 된다는 소리!
'알고리즘 > 백준' 카테고리의 다른 글
[boj 11653] 소인수분해 - js (0) | 2022.02.27 |
---|---|
[boj 2581] 소수 - js (0) | 2022.02.26 |
[boj 20757] 큰 수 A+B (0) | 2022.02.26 |
[boj 2839] 설탕배달 - js (0) | 2022.02.26 |
[boj 2775] 부녀회장이 될테야 - js (0) | 2022.02.25 |