Rumah > pembangunan bahagian belakang > Tutorial Python > 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
Lepaskan: 2024-11-11 04:27:03
asal
1006 orang telah melayarinya

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

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 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan