我正在尝试编写一个函数,当给定 N 时,它将返回一对符合 Lemoine 猜想的数字(每个大于 5 的奇数都可以表示为素数和素数的双倍之和)。我根据与哥德巴赫猜想相关的先前函数(此函数工作正常)创建了此代码,并使用了不同的函数来生成最多 N 的素数列表,但是我的新代码没有给我正确的结果,我不明白为什么 - 任何想法?谢谢
def eratosthenes2(n):
primes = list (range(2, n+1))
for i in primes:
j=2
while i*j<+ primes[-1]:
if i*j in primes:
primes.remove(i*j)
j=j+1
return primes
def lemoine(N):
x, y = 0, 0
result = 0
if N % 2:
prime = eratosthenes2(N)
while result != N:
for i in range(len(prime)):
x = prime[i]
if result == N:
break
for j in range(len(prime)):
y = prime[j]
result = 2*x + y
if result == N:
break
return x, y
哔哔one
相关分类