[英]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.