簡體   English   中英

我還能如何將while循環與[included function]一起使用,以僅對給定范圍內的質數求和?

[英]How else can I use the while-loop with the [included function] to sum only prime numbers from a given range?

我正在尋找可以超出未知變量n k是素數。 is_prime()是一個函數,如果參數為素數則返回True ,否則返回False

我嘗試過的是:

i = 1
total = 2
k = 0

while total <= n:
    i += 1
    if is_prime(i):
        k += 1
        total += i

隨着n的值變大,我的代碼開始不起作用。 我希望k僅在is_prime返回True時增加,並且total將是運行總計,確保素數之和不超過n 如何使用while循環,for循環或if / elif / else來解決此問題,而又不使用sum()類的其他函數呢?

您的代碼似乎沒有問題,假設is_prime確實執行了預期的工作。 也許您的n太大,並且尋找足夠的質數來達到n花費的時間太長。

如果出現任何錯誤,您應該已經指定了它們,除此之外,我看不到代碼有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM