Cara Mengenalpasti Nombor Perdana dengan Cekap dalam Python: Panduan Langkah demi Langkah

Susan Sarandon
Lepaskan: 2024-10-21 13:20:02
asal
617 orang telah melayarinya

How to Identify Prime Numbers Efficiently in Python: A Step-by-Step Guide

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!