為什麼我的 Python 素數產生器只列印 count 變數?

Patricia Arquette
發布: 2024-11-10 21:56:02
原創
797 人瀏覽過

Why is my Python prime number generator only printing the count variable?

對Python 中的簡單素數產生器進行故障排除

您的程式碼旨在產生素數,但它遇到了問題並且僅列印計數多變的。讓我們探討一下原因並提供解決方案。

以下程式碼被辨識為有問題:

import math

def main():
    count = 3
    one = 1
    while one == 1:
        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0:
                continue
            if count % x != 0:
                print(count)

        count += 1
登入後複製

有兩個主要問題:

  1. 您不正確當數字可以被「x」整除時,將數字列印為質數。您應該檢查整除性,而不是相反。
  2. 當 count 可以被「x」整除時,您不是中斷內部循環,而是繼續下一次迭代,這將導致素數確定不準確。

這是程式碼的修訂版本,解決了這些問題:

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

此更新程式碼修正邏輯以確保僅列印素數。它使用「is_prime」標誌檢查整除性,如果 count 可被「x」的任何值整除,則中斷內部循環。

以上是為什麼我的 Python 素數產生器只列印 count 變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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