소수 판별하는 방법은 크게 2가지가 있다.
// 1. Math.sqrt 사용하는 방법
function isPrime(num) {
if (num === 1) return false;
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) return false;
}
return true;
}
// 2. 에라토스테네스의 체
// 참고: https://blog.naver.com/PostView.naver?blogId=ndb796&logNo=221233595886&redirect=Dlog&widgetTypeCall=true&directAccess=false
function Eratosthenes() {
let arr = new Array(3000).fill(0).map((_, index) => index);
for (let i = 2; i < 3000; i++) {
if (arr[i] === 0) {
continue;
}
for (let j = i + i; j < 3000; j += i) {
arr[j] = 0;
}
}
// 0, 1 제외
arr = arr.filter((v) => v !== 1 && v !== 0);
return new Set(arr);
}