Penjana Nombor Perdana Mudah dalam Python dengan Logik Yang Diperbaiki
Kod yang diberikan bertujuan untuk menjana nombor perdana tetapi menghadapi masalah. Berikut ialah perincian isu dan kod yang disemak dengan penambahbaikan:
Masalah dan Penyelesaian:
Berikut ialah skrip Python yang disemak semula:
import math def main(): count = 3 while True: isprime = True for x in range(2, int(math.sqrt(count) + 1)): if count % x == 0: isprime = False break if isprime: print(count) count += 1
Ayak Eratosthenes yang Dioptimumkan:
def gen_primes(): D = {} q = 2 while True: if q not in D: yield q D[q * q] = [q] else: for p in D[q]: D.setdefault(p + q, []).append(p) del D[q] q += 1
Atas ialah kandungan terperinci Bagaimanakah saya boleh menjana nombor perdana dalam Python dengan cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!