我做了一个哥德巴赫猜想练习,并使它起作用。不过,它非常慢,我想知道如何优化它。
number = int(input("Enter your number >> "))
print("\nCalculating...")
if number % 2 == 0: #Only even numbers
primes = primenums(number) #returns all prime numbers <= input number
addend1 = primes[0]
addend2 = primes[0]
while addend1 + addend2 != number:
if primes.index(addend2) + 1 == len(primes):
addend2 = primes[primes.index(addend1) + 1]
addend1 = primes[primes.index(addend1) + 1]
else:
addend2 = primes[primes.index(addend2) + 1]
现在,最多10.000的算法非常快,但是到100.000时,大约需要5秒钟才能完成。就是这样吗?还是我可以加快速度?
答案 0 :(得分:0)
如果p<n
是素数,检查每个素数n-p
会更容易/更快。