我正在尝试编写一个找到素数的程序。
prime = [2]
for k in range(3,100)
if k%prime != 0
prime.append(k)
print(prime)
当我运行程序时,我收到错误:
TypeError: unsupported operand type(s) for %: 'int' and 'list'
我认为当我尝试按列表划分时会出现错误,但我不确定该怎么做。任何帮助将不胜感激。
答案 0 :(得分:0)
您必须遍历整个主要列表,并确保模块中所有项的模数为非零
prime = [2]
for k in range(3,100):
if all(k % p != 0 for p in prime):
prime.append(k)
优化(一旦发现单个素数因素,不要检查额外的素数):
prime = [2]
for k in range(3,100):
for p in prime:
if k % p == 0:
break
else:
prime.append(k)