【发布时间】:2016-05-04 10:55:04
【问题描述】:
首先,我是这个网站和编程的新手,所以如果我的代码编写水平不好或者我提出问题的方式有误,请指出我正确的方向。
我已经用 Python3 编写了一个程序,它使我能够获得一个包含小于我选择的给定数 N 的所有素数的列表。例如,如果我的输入是 10,我的程序将给出以下结果:
>>>primes(10)
[2, 3, 5, 7]
现在我正在尝试编写一个后续程序,它给出了给定数字 N 的孪生素数。例如:如果 N = 10,我知道有两个孪生素数 [3,5] 和 [5 ,7]。 我尝试了以下方法:
def twinprimes(n):
x = primes(n)
ps = []
for i in range(len(x)):
if x[i]+2==x[i]:
ps.append((x[i])
return ps
所以我正在尝试创建一个新列表 ps,其中添加了 twinprime 对的所有第一个值,以便我可以找到 len(ps) 以找到 twinprimes 的总值。
现在我知道我的代码有很多问题。我只是不知道如何让它工作。
【问题讨论】:
-
想想下面的表达式:
x[i]+2==x[i]。对于 any 给定的数字,这不可能是真的。5 + 2永远不会等于5。也许您想用x中的另一个数字来测试它?例如,双素数总是相邻的。 -
除了下面给出的答案:
ps.append((x[i])有一个太多的(,应该在if语句下缩进
标签: python python-3.x for-loop primes