def is_prime(number):
for i in range(2, number):
if number % 1 == 0 and number % i == 0:
return False
else:
return True
print(is_prime(13))
print(is_prime(55)) #True ##Why ???
def prime_numbers(a, b):
lst = []
for i in range(a,b+1):
if is_prime(i):
lst.append(i)
return lst
print(prime_numbers(50, 100))
這是我的代碼,假設我有prime_numbers(50, 100)
。查找範圍內的素數
它應該返回[53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
而不是
[51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
。
那麼我的代碼有什麼問題?
[isPrime Function for Python Language](http://stackoverflow.com/questions/15285534/isprime-function-for-python-language) –
但您真的很渴望地返回'True'。 –
這已經在下面得到了回答,但我只是補充說,遍歷範圍'(2,數字)'沒有意義。你只需要走到'數字'的一半,因爲任何大於這個數字的數字都不能均勻地分成數字。我可能還要確保'number'是一個整數,否則'range'可能會引發錯誤。 – elParaguayo