Mencari Nombor Perdana Antara 0 dan 100 dalam JavaScript
Mengenal pasti nombor perdana dalam julat tertentu boleh menjadi tugas yang mencabar. Walaupun kelihatan intuitif untuk menyemak setiap nombor secara individu dengan menggunakan operator modulus, pendekatan ini menjadi tidak cekap, terutamanya untuk julat yang lebih besar.
Pendekatan Alternatif: Ayak Eratosthenes
Algoritma yang lebih cekap untuk masalah ini ialah Sieve of Eratosthenes. Kaedah ini beroperasi dengan secara berulang menghapuskan nombor bukan perdana daripada senarai nombor perdana yang mungkin.
Pelaksanaan dalam 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>
Penggunaan
Untuk mencari semua nombor perdana antara 2 dan 100:
<code class="javascript">var primes = getPrimes(100); console.log(primes);</code>
Output:
[ 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 ]
Kesimpulan
Menggunakan Ayak Eratosthenes menyediakan kaedah yang sangat cekap dan boleh dipercayai untuk mencari nombor perdana dalam julat tertentu. Pendekatan ini meningkatkan prestasi secara dramatik berbanding pembahagian percubaan dan membolehkan pengecaman bilangan prima untuk julat yang lebih besar.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Cari Nombor Perdana Antara 0 dan 100 dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!