我对python非常陌生,我正在处理素数的代码,我创建了一个函数来测试给定的任何正整数上的goldbach猜想,如果这个猜想不适用,返回False,0,0,如果给定的数字遵循goldbach猜想,返回True,p1,p2,例如,goldbach(10)会返回True,3,7,或者goldbach(21)返回True,2,19。
我还创建了一个函数,该函数在给定范围内创建素数列表,是否可以将我的goldbach(n)函数映射到这个已创建的列表,以便它返回一个新列表,其中包含(bool,p1,p2),.,(bool,p1,p2)?如果是这样的话,我将如何编码这个?map()函数甚至是我应该使用的函数吗?我相信我在这里遗漏了一些重要的东西,因为我总是会遇到一个错误:'tuple‘对象是不可调用的。
这是最有可能导致问题的原因:
def goldbachlist(x):
primes=listofprimes(x)
gold=list(map(goldbach(x), primes))
return gold发布于 2022-05-08 05:30:18
我很难从你的规范中创建程序。我不确定您是否已经实现了您没有以与我相同的方式列出的函数,但是我已经在我的机器上测试了这一点,并验证了我得到了您想要的结果。请注意,jwillis0720的post使用了更优雅的列表过滤实践。
def listofprimes(x):
s = []
for i in range(2, x):
print(i)
stop = False
for z in range(1, i):
if i % z == 0 and z != 1 and z != i:
stop = True
if not stop:
s.append(i)
return s
def goldbach(x):
primes = listofprimes(x)
for i in primes:
for j in primes:
if i + j == x:
return (True, i, j)
return (False, 0, 0)
def goldbachlist(x):
primes = listofprimes(x)
print(primes)
gold=list(map(lambda x: goldbach(x), primes))
finalG = []
for g in gold:
if(g[0] == True):
finalG.append(g)
return finalG;
print(goldbachlist(int(500)))https://stackoverflow.com/questions/72158185
复制相似问题