与えられた正の偶数を2つの素数の和として書く方法の数を知りたい。Goldbach's Conjecture - 2つの素数の和として偶数を書く方法の数を調べる
瞬間に、私はこのコードを持っている:それは作品
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
っぽい以上になるとき、それは少し遅くなります。誰もがこの値を見つけるより効率的な方法を考えることができるので、高い値に対して迅速な結果が得られますか?
は自分自身に答えるが、ここではいくつかの作業コードです:https://gist.github.com/paulhankin/c471b24c9a4717010681f0c5e33d6be9 –