簡體   English   中英

我的素數列表模塊有什么問題?

[英]What is wrong with my prime number list module?

我在 primenumber.py 中做了一個素數檢查器

def isPrimeNumber(n):
    if n > 1:
       for i in range(2,n):
           if (n % i) == 0:
               return False
       else:
           return True
    else:
       return False

    return True

我做了一系列小於(n)的素數

from primenumber import isPrimeNumber
def factorialofprimes(n):
    primes = []
    for i in range(2,n+1):
        if isPrimeNumber(i) == False:
            break
        elif isPrimeNumber(i):
            primes.append(i)
    return primes

print(factorialofprimes(9))

但是當我輸入 (9) 時,我得到 [2,3] 而不是 [2,3,5,7] 有什么問題?

但是當我輸入 (9) 時,我得到 [2,3] 而不是 [2,3,5,7] 有什么問題?

您在 i=4 處跳出循環,因為它不是質數。

使用當前的factorialofprimes function,當遇到非素數時調用break break用於完全退出for循環,而您寧願continue循環。

或者,如果i是素數,則可以append(i) ,否則不執行任何操作。 如下所示:

from primenumber import isPrimeNumber
def factorialofprimes(n):
    primes = []
    for i in range(2,n+1):
        if isPrimeNumber(i):
            primes.append(i)
    return primes

print(factorialofprimes(9))

暫無
暫無

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

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