[英]What's wrong with this python prime number function?
所以我只想檢查一下我的功能有什么問題。 它給出素數就好了但是當我輸入一個像4這樣的數字時,它打印出“4不是素數”然后“4是素數”。 什么似乎是錯誤? (我知道這很難過,但我花了8個小時做這個(初學者))。
def isprime(n):
if n == 1:
print ("1 is not prime.")
if n == 2:
print ("2 is a prime number.")
for x in range (2, n):
if n%x == 0:
print (n, "is not prime.")
if n%x != 0:
print (n, "is a prime number.")
您的算法錯誤,您需要在檢測到因子后中斷,如果沒有因素,則打印是素數。
這是一個更正版本:
def isprime(n):
if n == 1:
print ("1 is not prime.")
return
if n == 2:
print ("2 is a prime number.")
return
for x in range (2, n):
if n%x == 0:
print (n, "is not prime.")
break
else:
print (n, "is a prime number.")
你應該在print(n, "is not prime.")
下面添加一個break
語句print(n, "is not prime.")
,否則它將繼續遍歷所有數字直到n,這是不必要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.