本帖最后由 jackz007 于 2019-10-28 10:43 编辑
for i in range(2,100):
for j in range(2,j) :
这两句的问题是中文逗号,后一句还把变量写错了,应该写成下面这样才对:
for j in range(2 , i) :
所有的缩进都不规范,这都是问题。
还有,用枚举法判定质数,得在验证完所有的因子后才能下结论,就是说,要确定 j 是不是质数,应该在 2 ~ j - 1 的范围内选取除数,只有能确定 j 不能被所有的除数整除的情况下,才能下最后的结论。
所以,楼主的代码应该这么写:import math
for i in range(2 , 100):
f = True # 先假定 i 是质数
for j in range(2 , int(math . sqrt(i)) + 1) :
if not (i % j) : # 如果 i 能被任何一个因子整除
f = False # 那么,i 肯定就不是质数
break # 既然不是质数,也就没有必要继续循环了
if f: # 判断应该在试验完所有的除数以后才能最终作出
print(i)
|