Pengujian Keprimaan hingga sqrt(n)
Semak satu nombor dengan cekap.
Pengujian Keprimaan hingga sqrt(n) ialah pelajaran Persediaan Temu Duga Pengaturcaraan percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Persediaan Temu Duga Pengaturcaraan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Persediaan Temu Duga Pengaturcaraan merangkumi sejumlah 4 pelajaran.
Soalan Nombor Perdana
Satu kemahiran asas matematik ialah menentukan sama ada satu nombor ialah perdana. Nombor perdana mempunyai tepat dua pembahagi: satu dan dirinya sendiri. Mari kita mengujinya dengan pantas. 🔍
Semakan Naif
Anda boleh cuba membahagi n dengan setiap nombor dari 2 hingga n tolak 1. Cara ini betul, tetapi amat perlahan apabila n besar.
Helah Punca Kuasa Dua
Inilah wawasan pentingnya: anda hanya perlu menguji pembahagi sehingga punca kuasa dua bagi n. Selepas itu, tiada faktor baharu boleh muncul.
Sebab Punca Kuasa Dua Mencukupi
Pembahagi datang dalam pasangan yang hasil darabnya ialah n. Jika kedua-duanya lebih besar daripada punca kuasa dua, hasil darabnya akan melebihi n, dan itu mustahil.
Had Gelung
Ulang i dari 2 selagi i kali i kekal kurang daripada atau sama dengan n. Menggunakan i*i mengelakkan ralat titik apungan daripada sqrt bagi integer yang besar.
while i * i <= n:
...Tangani Kes Kecil
Nombor yang kurang daripada 2 tidak pernah perdana, jadi tolaknya dari awal. Pemeriksaan awal ini memastikan gelung utama anda bersih dan betul.
if n < 2:
return FalseFungsi Penuh
Gabungkan semuanya: lakukan pemeriksaan terhadap nilai kecil, kemudian imbas pembahagi yang mungkin sehingga punca kuasa dua. Sebarang pembahagian tepat bermaksud n ialah komposit.
def is_prime(n):
if n < 2:
return False
i = 2
while i * i <= n:
if n % i == 0:
return False
i += 1
return TruePercepatkannya
Periksa 2 secara berasingan, kemudian uji nombor ganjil sahaja. Melangkau nombor genap kira-kira mengurangkan separuh kerja tanpa menambah kerumitan.
if n % 2 == 0:
return n == 2Kos Masa
Ujian ini berjalan dalam masa O(sqrt n). Untuk satu nombor sehingga satu bilion, itu hanya kira-kira 30,000 operasi mudah.
Satu Nombor, Bukan Banyak
Ujian punca kuasa dua sangat sesuai untuk satu atau beberapa pertanyaan. Jika anda memerlukan keperdanan bagi seluruh julat, penapis akan menjadi jauh lebih pantas.
Elakkan Perangkap Punca Kuasa Dua
Membandingkan dengan i*i dan bukannya math.sqrt mengelakkan ralat pembundaran yang boleh menyebabkan nombor pada sempadan diterima atau ditolak secara salah.
Semakan Pantas
Sahkan had yang menjadikan ujian ini pantas.
Ringkasan
Anda kini boleh menguji keperdanan satu nombor dalam masa O(sqrt n), melakukan pemeriksaan terhadap nilai kecil, melangkau nombor genap dan menggunakan i*i untuk mengekalkan ketepatan. ✅
Pelajari Persediaan Temu Duga Pengaturcaraan dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 90
- Pelajaran
- 360
Soalan Lazim
Adakah pelajaran “Pengujian Keprimaan hingga sqrt(n)” percuma?
Ya — teks penuh “Pengujian Keprimaan hingga sqrt(n)” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Persediaan Temu Duga Pengaturcaraan, tingkat taraf kepada CoddyKit PRO. Kursus Persediaan Temu Duga Pengaturcaraan merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pengujian Keprimaan hingga sqrt(n)”?
Semak satu nombor dengan cekap. Anda berlatih Persediaan Temu Duga Pengaturcaraan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Persediaan Temu Duga Pengaturcaraan?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Persediaan Temu Duga Pengaturcaraan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Pengujian Keprimaan hingga sqrt(n)” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Persediaan Temu Duga Pengaturcaraan ini?
Ya. Setiap pelajaran Persediaan Temu Duga Pengaturcaraan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- GCD, LCM dan Algoritma Euclid
- Pengujian Keprimaan hingga sqrt(n)
- Saringan Eratosthenes
- Pemfaktoran Perdana dan Pembahagi