我正在尝试编写一个函数,以找到给定数字的质因数分解。它不需要快速或高效,只需正常工作。
这是我的想法:
- 选择一个数字和一个起始点(将为2)。
- 如果该数字可被2整除,则将计数器加1并将该数字除以2。
- 当该数字不能被2整除时,将起始点更改为3。
- 重复进行以上步骤。
这是我的代码:
def ffs(num):
factors={}
n=2
while n<num:
while num%n==0:
num=num/n
if n in factors:
factors[n]+=1
else:
factors[n]=1
n+=1
return factors
我早期遇到了一些问题。当我尝试计算 ffs(6)
时,我应该得到 {2:1,3:1}
,但实际上我只得到了 {2:1}
。请问有人能帮忙指出我的错误吗?