<p>所以我陷入了这个问题,我想打印出所有素数求和的方法,等于给定的数字n:
这是我的代码</p>
<p>我的问题是,如果它是素数,我也希望在输出中有数字。
我不知道在哪里以及如何添加所需的代码。;(</p>
<p>我的意思是,如果n=2,它会给我一个空列表,但我想要[2]作为我的输出</p>
<pre><code>n = int(input("between 2n75: "))
prime = []
for x in range(2, n+1):
for i in range(2, x):
if x % i == 0:
break
else:
prime.append(x)
listprimes = (prime)
#n = int(input("between 2n75: "))
#print(listprimes)
def allways(n, listprimes):
ways = [[prime] for prime in listprimes]
new_ways = []
collected = []
while ways:
for way in ways:
s = sum(way)
for prime in listprimes:
if prime >= way[-1]:
if s + prime < n:
new_ways.append(way + [prime])
elif s + prime == n:
collected.append(way + [prime])
ways = new_ways
new_ways = []
return collected
print(allways(n, listprimes))
</code></pre>