【发布时间】:2016-12-31 18:14:58
【问题描述】:
我想知道给定的正偶数可以写成两个素数之和的方式数。
目前,我有这个代码:
n = int(input(">"))
def genprimes(n):#generate primes from 2 to n
primes = []
for i in range(2,n):
prime = True
for a in range(2,i):
if i % a == 0:
prime = False
if prime == True:
primes.append(i)
return primes
pairs = []
primes = genprimes(n)
for prime1 in primes:
for prime2 in primes:
if prime1 + prime2 == n and [prime1,prime2] not in pairs and [prime2,prime1] not in pairs:
pairs.append([prime1,prime2])
print(len(pairs))
它可以工作,但是当n 超过10,000 ish 时它会变得有点慢。谁能想出一种更有效的方法来找到这个值,以便它为高值产生快速的结果?
【问题讨论】: