古希臘數學家 埃拉托色尼/埃拉託斯特尼(Eratosthenes)除了在2000多年前就發現地球不是平的之外,還發明瞭本文中討論的埃式篩(一種通過篩除一個素數所有的倍數,從而識別素數方法)。
什麼是素數:
素數一般指質數。質數是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。
(自然數:全體非負整數組成的集合)
算法思想:
要得到自然數n以內的全部素數,必須把小於或等於的所有素數的倍數剔除,剩下的就是素數。
埃式篩代碼(篩選特定範圍內的素數)
function filter(N) { const isPrime = new Array(N).fill(true); for (let i = 2; i < N; i++) { if (isPrime[i] === false) { continue; } for (let j = i * 2; j < N; j += i) { isPrime[j] = false; } } const primes = []; for (let i = 2; i < N; i++) { if (isPrime[i] === true) { primes.push(i); } } return primes; }