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