大佬稍微做留步 帮小弟解疑
a = list()import math
for x in range(101,200):
i = int(x**0.5)
for y in range(2, i+1):
if x % y != 0:
a.append(x)
b = set(a)
print (b)
求(101,200)之间的素数,我哪里出问题了,应该在此基础怎么改正?谢谢 没有问题呀? a = list()
import math
for x in range(101,200):
i = int(x**0.5)
for y in range(2, i+1):
if x % y == 0:
break
else:
a.append(x)
b = set(a)
print (b) 这么明显的逻辑错误,自己看不出来吗 举个例子来说明你的代码问题,102必然不是素数,在你的y遍历中,遍历到4的时候就已经不满足102%4 == 0的条件了,所以就会加入到列表中,这就导致了再100以上的数中每个数总有一个数无法对这个100以上的数取余为零,所以全部都加入到列表了。
楼上的for……else语句功能是若循环全部跑完并且中途没有触发break的情况下执行else语句。 只有102%4!=0的时候才会加入吧,{:5_104:}
页:
[1]