为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 2021-08-14 16:45:59
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那个函数的答案呢?
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

这是因为您实际上并未循环,因为您在第一个循环中返回 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


查看完整回答
反对 回复 2021-08-14
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号