首頁 後端開發 Python教學 如何優化 Python 中的素數列印以獲得準確的結果?

如何優化 Python 中的素數列印以獲得準確的結果?

Oct 21, 2024 pm 01:34 PM

How to Optimize Prime Number Printing in Python for Accurate Results?

在 Python 中列印一系列素數

辨識素數是數學和程式設計中的基本概念。質數是大於 1 的整數,但不是兩個較小整數的乘積。以下 Python 程式碼旨在列印從 1 到 100 的一系列質數。

程式碼和問題

找出素數的一種常見方法是迭代數字從 2 到 n。對於每個數字,檢查它是否可以被 2 和它本身之間的任何數字(不包括 1)整除。如果它能被整除,那麼它就不是素數;

考慮以下程式碼,旨在列印1 到100 之間的質數:

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

但是,此程式碼遇到了列印奇數而不是質數的問題。出現該缺陷是因為外循環不僅迭代素數,還迭代合數(其他數字的倍數)。因此,對於像 9 這樣的奇數合數,if num % i != 0 的條件成立,導致所有奇數的列印錯誤。

解決方案和最佳化

為了修正這個問題,我們必須修改程式碼以明確檢查素數。這是修改後的版本:

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

在這段程式碼中,我們引入了一個布林變數 prime,最初設定為 True。然後,我們使用內部迴圈檢查 2 到 num-1(不包括 num)之間的每個數字。如果 num 可以被任意數字 i 整除,我們將 prime 設為 False,表示它不是質數。內循環結束後,如果 prime 仍然為 True,則列印 num。

此程式碼可準確辨識指定範圍內的質數。然而,它可以透過只檢查除數到 num 的平方根來進一步優化。這是因為任何大於平方根的因子都會有一個小於平方根的對應因子。

這是最佳化版本:

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

透過使用這些調整,程式碼可以有效地列印1 到 100 之間的一系列質數。

以上是如何優化 Python 中的素數列印以獲得準確的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

我如何使用美麗的湯來解析HTML? 我如何使用美麗的湯來解析HTML? Mar 10, 2025 pm 06:54 PM

我如何使用美麗的湯來解析HTML?

python中的圖像過濾 python中的圖像過濾 Mar 03, 2025 am 09:44 AM

python中的圖像過濾

如何使用Python查找文本文件的ZIPF分佈 如何使用Python查找文本文件的ZIPF分佈 Mar 05, 2025 am 09:58 AM

如何使用Python查找文本文件的ZIPF分佈

如何使用Python使用PDF文檔 如何使用Python使用PDF文檔 Mar 02, 2025 am 09:54 AM

如何使用Python使用PDF文檔

如何在django應用程序中使用redis緩存 如何在django應用程序中使用redis緩存 Mar 02, 2025 am 10:10 AM

如何在django應用程序中使用redis緩存

如何使用TensorFlow或Pytorch進行深度學習? 如何使用TensorFlow或Pytorch進行深度學習? Mar 10, 2025 pm 06:52 PM

如何使用TensorFlow或Pytorch進行深度學習?

如何在Python中實現自己的數據結構 如何在Python中實現自己的數據結構 Mar 03, 2025 am 09:28 AM

如何在Python中實現自己的數據結構

python對象的序列化和避難所化:第1部分 python對象的序列化和避難所化:第1部分 Mar 08, 2025 am 09:39 AM

python對象的序列化和避難所化:第1部分

See all articles