Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh mengoptimumkan penjana nombor perdana Python saya untuk kelajuan dan ketepatan?

Bagaimanakah saya boleh mengoptimumkan penjana nombor perdana Python saya untuk kelajuan dan ketepatan?

DDD
DDDasal
2024-11-11 04:27:03942semak imbas

How can I optimize my Python prime number generator for speed and accuracy?

Penjana Nombor Perdana dalam Python

Kod Python ini bertujuan untuk menjana nombor perdana, tetapi ia memerlukan beberapa pelarasan untuk kefungsian optimum.

Kod yang diperbetulkan di bawah:

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

Isu dan Pembetulan:

  1. Isu Percetakan: Kiraan cetakan kod asal walaupun ia bukan prima. Ini kerana ia mencetak pada keadaan if count % x != 0, yang tidak memastikan keutamaan. Kod yang diperbetulkan dicetak hanya apabila is_prime adalah Benar.
  2. Kawalan Gelung: Pernyataan continue dalam kod asal melangkau lelaran gelung apabila syarat dipenuhi, tetapi ia sepatutnya menamatkan lelaran menggunakan rehat untuk memproses nombor seterusnya.
  3. Kecekapan: Semak kebolehbahagiaan secara manual untuk setiap nombor boleh menjadi tidak cekap untuk bilangan yang besar. Kod yang diperbetulkan menggunakan Sieve of Eratosthenes, yang jauh lebih cekap untuk penjanaan perdana.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengoptimumkan penjana nombor perdana Python saya untuk kelajuan dan ketepatan?. 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