【发布时间】:2017-03-30 21:56:16
【问题描述】:
我正在尝试编写一个程序来查找给定数字的所有质因数,并尝试了以下操作:
def factors(nr):
i = 2
factors = []
while i<nr:
if (nr%i)==0:
factors.append(i)
nr = nr/i
else:
i = i+1
return factors
我的想法如下。从 i = 2 开始,当 i
我知道网站上发布了几个正确答案,但我想知道为什么我的程序不正确。
更新 因此,如果我让程序运行例如:
因素(38),产生 [2]。
因素(25),产生 [5]。
所以它在向列表中添加一个数字后停止。
【问题讨论】:
-
@WillNess 但实际上,DavidCullen 已经回答了我的问题
-
现在,您已经编辑了,我们可以建议您尝试您的原始代码,例如与 30. 它是否也只在列表中添加一个数字?不。它实际上没有添加________(完成句子)。这为您提供了一个很好的线索来了解您的代码有什么问题。能够自己找到它必须更具启发性,毕竟它是通过您提供测试用例来实现的。指南的存在是有原因的。
标签: python-3.x prime-factoring