Rumah > Artikel > pembangunan bahagian belakang > Mengapakah penjana nombor perdana Python saya hanya mencetak pembolehubah kiraan?
Menyelesaikan masalah Penjana Nombor Perdana Mudah dalam Python
Kod anda direka untuk menjana nombor perdana, tetapi ia menghadapi masalah dan hanya mencetak kiraan pembolehubah. Mari kita terokai sebabnya dan berikan penyelesaian.
Kod berikut dikenal pasti sebagai mempamerkan masalah:
import math def main(): count = 3 one = 1 while one == 1: for x in range(2, int(math.sqrt(count) + 1)): if count % x == 0: continue if count % x != 0: print(count) count += 1
Terdapat dua masalah utama:
Berikut ialah versi kod yang disemak dengan isu ini dialamatkan:
import math def main(): count = 3 while True: is_prime = True for x in range(2, int(math.sqrt(count) + 1)): if count % x == 0: is_prime = False break if is_prime: print(count) count += 1
Kod yang dikemas kini ini membetulkan logik untuk memastikan hanya nombor perdana dicetak. Ia menyemak kebolehbahagiaan menggunakan bendera 'is_prime' dan memecahkan gelung dalam jika kiraan menjadi boleh dibahagikan dengan sebarang nilai 'x'.
Atas ialah kandungan terperinci Mengapakah penjana nombor perdana Python saya hanya mencetak pembolehubah kiraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!