在 JavaScript 中查找 0 到 100 之间的素数
识别给定范围内的素数可能是一项具有挑战性的任务。虽然使用模运算符单独检查每个数字似乎很直观,但这种方法效率很低,尤其是对于较大的范围。
另一种方法:埃拉托斯特尼筛法
解决这个问题的更有效的算法是埃拉托斯特尼筛法。此方法通过迭代地从可能的素数列表中消除非素数来进行操作。
JavaScript 中的实现
<code class="javascript">function getPrimes(max) { var sieve = [], i, j, primes = []; for (i = 2; i <= max; ++i) { if (!sieve[i]) { // i has not been marked -- it is prime primes.push(i); for (j = i << 1; j <= max; j += i) { sieve[j] = true; } } } return primes; }</code>
用法
查找 2 到 100 之间的所有质数:
<code class="javascript">var primes = getPrimes(100); console.log(primes);</code>
输出:
[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 ]
结论
使用埃拉托色尼筛法提供了一种高效且可靠的方法来查找指定范围内的素数。与试除法相比,这种方法极大地提高了性能,并且能够识别更大范围的素数。
以上是如何在 JavaScript 中查找 0 到 100 之间的质数?的详细内容。更多信息请关注PHP中文网其他相关文章!