import math
l = []
for i in range(101,201):
x = int(math.sqrt(i))
#用i 分别除以int(math.sqrt(i))的值,查看i是否是素数
for y in range(2,x+1):
#如果是非素数,退出运行
if i % y == 0 and i != y:
break
#如果是素数,把值增加到L列表
if i % y != 0:
l.append(i)print l
print l
你的逻辑和语法上都有一些错误
我修改了下:
# -*- coding: utf-8 -*-希望我的回答可以帮到你
追问你好,为什么要把第二个if和for 并列?
追答整个逻辑的目的是:当有一个i%y是0就说明能够整除,因此要所有的y全部不能被整除才能证明i是素数,这里看标志位flag,在for循环中只要有一次满足if的条件,就会被清零,for里面省略了else是因为一次的不能够被整除并不能说明什么,你之前的逻辑问题也主要出现在那里
本回答被提问者采纳