Mengenal pasti Nombor Perdana dengan Cekap dalam Python
Mencari siri nombor perdana dalam julat tertentu ialah tugas pengaturcaraan biasa. Untuk mencapai ini dalam Python, kami menggunakan urutan logik gelung dan pernyataan bersyarat untuk menentukan keutamaan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa beberapa percubaan awal mungkin menghasilkan keputusan yang salah.
Membetulkan Kod untuk Pengenalan Nombor Perdana
Pemeriksaan kod asal mendedahkan kecacatan kritikal : ia mencetak nombor ganjil, bukan nombor perdana. Ralat ini berpunca daripada keadaan hilang yang mengenal pasti nombor bukan perdana dengan berkesan. Berikut ialah pecahan isu:
<code class="python">for num in range(1, 101): for i in range(2, num): if num % i == 0: break else: print(num) break</code>
Untuk membetulkannya, kita perlu menyemak dengan jelas sama ada nombor itu boleh dibahagi dengan mana-mana nombor antara 2 dan nombor itu sendiri. Jika tiada pembahagi ditemui, ia adalah perdana. Berikut ialah versi yang dipertingkatkan:
<code class="python">for num in range(2, 101): prime = True for i in range(2, num): if (num % i == 0): prime = False if prime: print(num)</code>
Mengoptimumkan Kod untuk Kecekapan
Untuk meningkatkan prestasi, disyorkan untuk menyemak pembahagi sahaja sehingga punca kuasa dua yang diberikan nombor. Jika tiada pembahagi ditemui dalam julat ini, ia boleh dianggap prima. Pengoptimuman ini secara drastik mengurangkan bilangan lelaran yang diperlukan:
<code class="python">import math for num in range(2, 101): if all(num % i != 0 for i in range(2, int(math.sqrt(num)) + 1)): print(num)</code>
Pemurnian Lanjut
Kod boleh dibuat lebih cekap dengan memilih nombor ganjil sahaja memandangkan nombor perdana lebih besar daripada 2 sentiasa ganjil. Kod yang disemak:
<code class="python">import math print(2) for num in range(3, 101, 2): if all(num % i != 0 for i in range(3, int(math.sqrt(num)) + 1, 2)): print(num)</code>
Atas ialah kandungan terperinci Cara Mengenalpasti Nombor Perdana dengan Cekap dalam Python: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!