埃拉托色尼筛法是一种高效的求解素数的算法,它可以在给定范围内找出所有的素数。本文将使用 JavaScript 实现这一算法,并解释其原理和具体步骤。
算法原理:
埃拉托色尼筛法通过不断筛选掉某数的倍数来确定素数,其基本思想是从小到大遍历每个可能的素数,然后将它的倍数标记为合数。具体步骤如下:
- 创建一个长度为 n+1 的布尔类型数组 isPrime,并将所有元素初始化为 true。isPrime[i] 表示数字 i 是否为素数。
- 将 isPrime[0] 和 isPrime[1] 设置为 false,因为 0 和 1 不是素数。
- 从 2 开始遍历到 √n(n 的平方根),对于每个遍历到的素数 p:
- 如果 isPrime[p] 为 true,则将其所有的倍数标记为 false,即更新数组 isPrime,将 isPrime[i*p] 置为 false。其中 i >= 2。
- 遍历结束后,isPrime 数组中值为 true 的下标即为素数。
下面是用 JavaScript 实现埃拉托色尼筛法的代码:
function sie