(Python 3.x)
z=[]
x=0
while 1==1:
x=x+1
y=1
z.append(x)
while y==1:
a = 0
b = 0
if z(a)==x:
print(x)
y = 2
elif x%z(a)!= 0:
a = a+1
elif b == 2:
y = 2
else:
b = b+1
所以,我创建了一个代码来查找所有素数,直到python崩溃。但是,它依赖于z(a)才能工作。这个想法是,当“a”发生变化时,它会在列表中移动。
“z(a)”是错误的所在,所以有人知道解决这个问题的方法吗?
答案 0 :(得分:0)
z
是一个列表。您可以使用z[a]
运算符来索引其中的值(而不是z(a)
,它假定函数调用a
作为参数)。
我冒昧地使用boolean variables
,+=
运算符并解压缩值:
z = []
x = 0
while True:
x += 1
y = True
z.append(x)
while y:
a, b = 0, 0
if z[a] == x:
print(x)
y = False
elif x % z[a]: a += 1
elif b == 2: y = False
else: b += 1
我相信你想要实现的目标(无限递增素数发生器):
def prime (n): return not any([n % i == 0 for i in range(2, n)])
x = 0
while True:
if prime(x): print(x)
x += 1