首頁 > 後端開發 > Python教學 > 如何在 Python 中有效辨識素數:逐步指南

如何在 Python 中有效辨識素數:逐步指南

Susan Sarandon
發布: 2024-10-21 13:20:02
原創
769 人瀏覽過

How to Identify Prime Numbers Efficiently in Python: A Step-by-Step Guide

在 Python 中高效識別素數

尋找給定範圍內的一系列素數是一項常見的程式設計任務。為了在 Python 中實現這一點,我們採用迴圈和條件語句的邏輯序列來確定質數。然而,需要注意的是,一些初始嘗試可能會產生不正確的結果。

更正素數識別代碼

對原始代碼的檢查揭示了一個嚴重缺陷:它錯誤地打印奇數,而不是素數。此錯誤源自於缺乏有效辨識非素數的條件。以下是該問題的詳細說明:

<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>
登入後複製

要修正此問題,我們需要明確檢查該數字是否可以被 2 及其自身之間的任何數字整除。如果找不到約數,則它是質數。這是改進版本:

<code class="python">for num in range(2, 101):
    prime = True
    for i in range(2, num):
        if (num % i == 0):
            prime = False
    if prime:
        print(num)</code>
登入後複製

最佳化程式碼以提高效率

為了提高效能,建議僅檢查給定平方根的除數數字。如果在這個範圍內找不到約數,則可以認為它是質數。這種最佳化大大減少了所需的迭代次數:

<code class="python">import math

for num in range(2, 101):
    if all(num % i != 0 for i in range(2, int(math.sqrt(num)) + 1)):
        print(num)</code>
登入後複製

進一步細化

僅選擇奇數可以使程式碼更有效率,因為素數更大比2 總是奇數。修改後的程式碼:

<code class="python">import math
print(2)
for num in range(3, 101, 2):
    if all(num % i != 0 for i in range(3, int(math.sqrt(num)) + 1, 2)):
        print(num)</code>
登入後複製

以上是如何在 Python 中有效辨識素數:逐步指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板