- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
9小时前关门了。
Improve this question
我有一个练习:
编写一个程序,从输入中获取数n,并打印所有和等于n的素数的情况。
例如:输入为n = 13,输出为:
2 2 2 2 2 3
2 2 2 2 5
2 2 2 7
2 2 3 3 3
2 3 3 5
2 11
3 3 7
3 5 5
13
输出按词典法排序。
我只需要编写代码就可以找到1-n之间的质数:
n = int(input())
lst = []
for i in range(2, n + 1):
isPrime = True
for j in range(2, i - 1):
if i % j == 0:
isPrime = False
if isPrime:
lst.append(i)
print(lst)
1条答案
按热度按时间gzszwxb41#
这是我对这个问题的看法。
说明:
1.我们检查当前的n是否在素数列表中,如果是,则意味着
path + [n]
是一个解,因此我们追加它。1.我们递归地调用
get_sums
来寻找进一步的解,这种方法的问题是算法不能区分[2, 2, 2, 2, 2, 3]
和[2, 2, 2, 2, 3, 2]
,所以我们去掉了最后两行中的重复项。代码输出: