// 에라토스테네스의 체
const number = 100; // 범위의 수
const sqrtNumber = 100 ** 0.5; // 범위의 제곱근
const arr = Array(number).fill().map((num, index) => index > 1 ? index : false);
// 0, 1 은 소수가 아니므로 false 아니면 일단 배열에 숫자를 넣는다.
for(let i = 2; i < sqrtNumber; i++) {
// 찾고자하는 수의 제곱근보다 작은 수 들,
if(arr[i]) {
// 2부터 지워나가면 2~10 중에 소수만 남는다
for(let j = i * i; j < number; j = j + i) {
arr[j] = false;
//해당 하는 소수가 존재 하면, 그 해당 소수의 배수 들은 모두 fasle 처리해준다.
}
}
}
console.log(arr.filter(v => !!v))
// 구하고자하는 범위의 수의 제곱근 보다 작은 수중에서
// 소수들의 배를 제외시키면
// 그 범위 내의 소수들을 구할 수 있다.