Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah anda boleh menentukan dengan cekap sama ada nombor adalah perdana dalam JavaScript?

Bagaimanakah anda boleh menentukan dengan cekap sama ada nombor adalah perdana dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-10-26 17:57:03947semak imbas

How can you efficiently determine if a number is prime in JavaScript?

Mengesahkan Nombor Perdana dalam JavaScript dengan Cekap

Dalam pengaturcaraan komputer, menentukan sama ada nombor yang diberikan ialah perdana ialah tugas asas. Nombor perdana ialah integer positif yang lebih besar daripada 1 yang tidak mempunyai pembahagi positif selain daripada 1 dan dirinya sendiri.

Pendekatan popular untuk menyemak primaliti melibatkan Ayakan Eratosthenes. Walau bagaimanapun, untuk pertimbangan prestasi, kaedah yang lebih cekap boleh digunakan, seperti yang ditunjukkan dalam pelaksanaan JavaScript berikut:

let inputValue = 7;
let isPrime = inputValue == 1 ? false : true;  // Because 1 is not prime

for (let i = 2; i < inputValue; i++) {
  inputValue % i == 0 ? isPrime *= false : isPrime *= true;
}

alert(`${inputValue} is ${isPrime ? 'prime' : 'not prime'} number`);

Analisis Kerumitan Masa dan Ruang

Masa kerumitan algoritma di atas ialah O(sqrt(n)), dengan n mewakili nilai input. Ini kerana gelung berulang melalui semua integer sehingga punca kuasa dua nombor input, yang merupakan pengoptimuman yang ketara ke atas menyemak semua integer sehingga n.

Kerumitan ruang ialah O(1), kerana ia tidak memerlukan sebarang struktur data tambahan di luar pembolehubah primitif.

Pendekatan Alternatif

Sintaks alternatif untuk menyemak primaliti dalam JavaScript ialah:

const isPrime = num => {
    for (let i = 2, s = Math.sqrt(num); i <= s; i++) {
        if (num % i === 0) return false;
    }
    return num > 1;
}

Pendekatan ini mencapai kerumitan masa dan ruang yang sama seperti yang sebelumnya sambil menggunakan sintaks fungsi anak panah yang lebih ringkas.

Atas ialah kandungan terperinci Bagaimanakah anda boleh menentukan dengan cekap sama ada nombor adalah perdana 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