猿问

这段代码怎么找素数,is_prime(9) 返回True?

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那个函数的答案呢?


达令说
浏览 160回答 2
2回答

慕少森

这是因为您实际上并未循环,因为您在第一个循环中返回 True(9 % 2 == 0 为 False)。这样的事情应该可以解决问题:def is_prime(x):&nbsp; if x < 2:&nbsp; &nbsp; return False&nbsp; for n in range(2, x):&nbsp; &nbsp; if x % n == 0:&nbsp; &nbsp; &nbsp; return False&nbsp; return True
随时随地看视频慕课网APP

相关分类

Python
我要回答