This question already has answers here:
Program that checks if a number is prime number
                                
                                    (5个答案)
                                
                        
                                去年关闭。
            
                    
def is_prime(x):
  if x < 2:
    return False
  else:
    for n in range(2, x):
      if x % n == 0:
        return False
      else:
        return True


print is_prime(9)返回True而不是False

我不太明白

range (2,9)包括以下列表:2,3,4,5,6,7,8

9 % 3 == 0
那么,为什么我没有得到False作为该函数的答案呢?

最佳答案

这是因为您实际上没有循环,因为在第一个周期中返回True(9%2 == 0为False)。

这样的事情应该可以解决问题:

def is_prime(x):
  if x < 2:
    return False
  for n in range(2, x):
    if x % n == 0:
      return False
  return True

10-06 06:10