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!