Persediaan Temu Duga Pengaturcaraan · Pelajaran

Pengujian Keprimaan hingga sqrt(n)

Semak satu nombor dengan cekap.

Pelajaran 2 daripada 413 langkah

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 False

Fungsi 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 True

Percepatkannya

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 == 2

Kos 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. ✅

Percuma untuk bermula

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

  1. GCD, LCM dan Algoritma Euclid
  2. Pengujian Keprimaan hingga sqrt(n)
  3. Saringan Eratosthenes
  4. Pemfaktoran Perdana dan Pembahagi
← Kembali ke Persediaan Temu Duga Pengaturcaraan