Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Cekap Mencari Nombor Perdana Dalam Julat dalam JavaScript?

Bagaimana untuk Cekap Mencari Nombor Perdana Dalam Julat dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 22:49:30265semak imbas

How to Efficiently Find Prime Numbers Within a Range in JavaScript?

Cari Nombor Perdana dengan Cekap dalam Julat

Dalam JavaScript, mengenal pasti nombor perdana antara julat yang ditentukan boleh dicapai melalui pelbagai kaedah. Satu pendekatan yang biasa digunakan ialah algoritma Sieve of Eratosthenes. Teknik ini menandakan gandaan nombor perdana sebagai bukan perdana, membolehkan pengecaman nombor perdana yang cekap.

Berikut ialah pelaksanaan JavaScript bagi algoritma Ayak Eratosthenes yang diubah suai untuk mencari nombor perdana dalam julat 0 hingga 100 :

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;
}

Dalam fungsi ini, tatasusunan bernama 'ayak' digunakan untuk menjejak nombor yang ditandakan sebagai bukan perdana. Mengulangi nombor dari 2 hingga maksimum yang ditentukan, nombor tidak bertanda dianggap perdana dan ditambah pada tatasusunan 'prima'. Berbilang nombor perdana kemudiannya ditandakan sebagai bukan perdana dalam tatasusunan 'ayak'.

Dengan menggunakan fungsi ini, anda boleh mendapatkan semula semua nombor perdana dalam julat tertentu dengan cekap. Sebagai contoh, getPrimes(100) akan mengembalikan tatasusunan semua nombor perdana antara 2 dan 100 (termasuk).

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Nombor Perdana Dalam Julat dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn