def is_prime(n):
# Write your function code here...
if 2 <= n and n < 1000 :
for i in range(2, n):
if n % i == 0:
return False
else:
return True
print(is_prime(975))
为什么
print(is_prime(975))
是真正的prima,而n = 2
是None
。我需要答案 975 是假的,n = 2
是真的
当前实现的
is_prime
函数对于任何大于或等于 2 但小于 1000 的数字 n 都会返回 True,无论它是否是质数。这是因为该函数只是确定 n 是否可以被 2 到 n-1 之间的任何数字整除,如果 n 不能整除,则返回 True。
您必须修改函数的逻辑才能解决问题并正确检测给定整数是否为素数。这是更新版本,运行循环从 2 到 n + 1 的平方根
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
print(is_prime(975)) # This should print False
print(is_prime(2)) # This should print True