[英]Find prime numbers in range
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]
。
那么我的代碼有什么問題呢?
重新定位return True
行:
def is_prime(number):
for i in range(2, number):
if number % 1 == 0 and number % i == 0:
return False
return True
print(is_prime(13)) # True
print(is_prime(55)) # False
您的代碼無法正常工作,因為您在第一次迭代中返回了True
或False
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.