Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Mencetak Nombor Perdana dengan betul dalam Python: Menyelesaikan Isu dengan Output Ganjil

Cara Mencetak Nombor Perdana dengan betul dalam Python: Menyelesaikan Isu dengan Output Ganjil

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-21 12:38:02919semak imbas

How to Correctly Print Prime Numbers in Python: Resolving an Issue with Odd Output

Mencetak Nombor Perdana dalam Python

Dalam percubaan untuk menyenaraikan nombor perdana daripada 1 hingga 100, pengguna Python menghadapi masalah di mana output memaparkan nombor ganjil dan bukannya nombor perdana. Untuk menangani perkara ini, kami akan menyelidiki isu ini dan menyediakan penyelesaian yang disemak semula.

Kod awal, seperti yang ditunjukkan di bawah, berulang pada nombor dari 1 hingga 100 dan untuk setiap nombor, ia menyemak sama ada ia boleh dibahagikan dengan sebarang nombor daripada 2 kepada dirinya sendiri:

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

Masalah dengan pendekatan ini terletak pada kriteria penamatan gelung bersarang. Sebaik sahaja nombor didapati boleh dibahagikan dengan faktor i, gelung dalam pecah dan pernyataan print(num) dilaksanakan. Walau bagaimanapun, gelung luar kemudiannya mula menyemak nombor yang sama dengan nilai seterusnya i.

Untuk menyelesaikannya, kita perlu mengemas kini gelung untuk menyemak kebolehbahagi dengan semua nombor daripada 2 hingga punca kuasa dua nombor. Jika tiada pembahagi ini membahagi nombor, ia berkemungkinan besar. Kod yang diperbetulkan ialah:

<code class="python">for num in range(2, 101):
    prime = True
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            prime = False
            break
    if prime:
        print(num)</code>

Penyelesaian ini mengesan nombor perdana dengan cekap dengan menyemak kebolehbahagiaan secara berulang oleh faktor yang lebih kecil. Hasilnya, output akan memaparkan nombor perdana dari 1 hingga 100 dengan tepat.

Atas ialah kandungan terperinci Cara Mencetak Nombor Perdana dengan betul dalam Python: Menyelesaikan Isu dengan Output Ganjil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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