为什么3不是素数?

why is 3 not prime number?

判断函数是nprime还是不是

def test_prime(n):
  
    if n == 1:
        return False
    elif n==2:
        return True
    else:
        for e in range(2,n): # iteration from 2 to n
            if e % 2 == 0:
                return False
        return True

这里为什么3不是素数?

  print(test_prime(3))

那是因为你实现的逻辑是错误的。正如已经指出的那样,您的代码当前正在检查您输入的数字是偶数还是奇数。要检查数字是否为质数,您可以执行以下操作:

def test_prime(n):
  
    if n == 1:
        return False
    elif n==2:
        return True
    else:
        for e in range(2,n): # iteration from 2 to n
            if n % e == 0:
                return False
        return True

else条件将检查输入数字除以range中每个数字后的余数是否为0。如果它是 0 那么它不是质数。此外,您可以 运行 从 0 循环到 n 的一半,这比建议的更有效。

数字 3 不是质数,因为代码中的逻辑来自范围 (2,n),return 数字 2 和 2%2 == 0 会是什么,这是错误的。