在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中文網其他相關文章!