首页 > 开发 > Python > 正文

用python写输出1到100之间的素数,为啥不正确呢?

2017-09-06 19:11:34  来源:网友分享
from math import sqrtdef isprime(x):    if x == 1:        return False    else:        k = int(sqrt(x))        for i in range(2,k+1):            if x % i == 0:                return False            else:                return Truefor j in range(2,101):    if isprime(j):        print(j)

结果如图:

看不懂问题出在哪里,为啥不能输出素数呢?
谢谢!

解决方案

    for i in range(2,k+1):        if x % i == 0:            return False        else:            return True                 当x%i != 0时 判断第一次就return了     应该 x%i == 0 时return 然后如果这里没return就应该到for执行完后再return