因为j在for循环那声明的,到else后就出了作用域了。
在第4行添加一句: j = 2;
然后第8行的else删掉
第9行改成 if (j>c) :
最后3行,再缩进1层
就是作用域的问题,这样的不用纠结呀,C++的语法在有的版本中也需要在for之前定义的!
for i in range(2,101):
c=int(i**0.5)
isPrime = True
for j in range(2,c+1):
if i%j == 0:
isPrime = False
break
if isPrime:
print(i)