当我尝试运行代码时如何解决错误?

问题描述 投票:0回答:1
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
是真的

python function for-loop
1个回答
0
投票

当前实现的

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
© www.soinside.com 2019 - 2024. All rights reserved.