Python 3.x 数的素因子分解
我正试图编写一个程序来找出给定数字的所有素数因子,并尝试了以下方法:Python 3.x 数的素因子分解,python-3.x,prime-factoring,Python 3.x,Prime Factoring,我正试图编写一个程序来找出给定数字的所有素数因子,并尝试了以下方法: 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 def系数(nr): i=2 因子=[] whi
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
def系数(nr):
i=2
因子=[]
while i解决问题的最简单更改是更改while
循环条件:
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
print factors(8)
print factors(9)
print factors(10)
@但是事实上,我的问题已经由DavidCullennow回答了,您已经编辑过了,我们建议您尝试您的原始代码,例如30。它是否也只在列表中添加了一个数字?不,事实上它并没有加上(完成句子)。这为您提供了一个很好的线索,说明您的代码出了什么问题。能够自己找到它会更具启发性,毕竟,它是通过提供测试用例实现的。这些指导方针的存在是有原因的。如果您只回答代码,并添加一些解释,说明为什么以及如何解决这个问题,这将大大提高您的效率。谢谢您的建议。我写了一个解释。我想贡献这个网站,像你这样的评论是非常受欢迎的。另外,请注意,你有一个缩进错误。在这种情况下,如何修复错误是非常清楚的,但是在这里发布的代码应该能够被复制粘贴并在没有错误的情况下运行!!!是的,我可以看到缩进错误。。。。从下一次开始,我会记住。。。。。。谢谢你的建议,你知道你可以(也应该)给出你的答案
[2, 2, 2]
[3, 3]
[2, 5]
def ba(n):
pfa=[]
y=n
for i in range(n):
if (i!=0 and i!=1):
while (y%i==0):
pfa.append(i)
y=y/i
print(pfa)