我一般是编程新手,我正在尝试用 Python 做“哥德巴赫理论”,即 3 和给定数字之间的每个数字(在我的例子中是 50。)
lijst2 = []
for n in lijst:
j = 2*n+1
lijst2.append(j)
priemgetallen = [2]
counter = 2
x = 2
while len(priemgetallen)<50:
priemgetallendelers = []
for i in range (1,counter+1):
if counter % i == 0:
priemgetallendelers.append(i)
if len(priemgetallendelers) == 2:
priemgetallen.append(counter)
counter += 1
else:
counter +=1
上面的代码对我的问题并不重要,只是为了更容易理解我想要做什么。
while not len(sommen) == len(lijst2):
for i in lijst2:
for j in priemgetallen:
for r in priemgetallen:
for t in priemgetallen:
if i == j+r+t:
在这里,我想说的是,如果我的原始列表中的一个数字是由三个素数之和组成的,请将其添加到列表中。
sommen2 = []
sommen2.append(j)
sommen2.append(r)
sommen2.append(t)
所以直到这里一切都可以正常工作,但如果我让它打印出输出,我会得到数倍相同的“I”,或者更确切地说是素数的相同总和。
for q in sommen:
if not sum(sommen2) == sum(q):
sommen.append(sommen2)
在这里,我想说的是,对于我的列表“sommen”中的 aq,如果该 q 的总和已经存在,则不要添加另一个。但是我的笔记本电脑只是计算了很长时间。
print (sommen)