1)正整数分解质因数,假设该数字为n,开始从2到n、从小到大的对该数字做除法,得到的第一个整除的除数是其中一个质因数(得到的第一个余数是0的除数);
2)当前所除得的商,再去用上述的方法求它的第一个质因数;
3)重复上述步骤,直到最终整除的商是1时,最后一个质因数查找完毕!
综上所述,这种方法用递归会很方便。
a.递归的循环条件是:找到第一个整除的除数
b.递归循环的 输出->输入:当前循环得到的除数的商
c.递归循环的终止条件:第一个整除的商是1
def prime_factor(number):
#递归终止条件
if number == 1:
return []
else:
for i in range(2,number+1):
#得到商和余
n,d = divmod(number,i)
if d == 0:
return [i] + prime_factor(n)
欢迎大家关注我的公众号【技能精进手册】(微信号:skillbook)。
本案例的完整版、可运行的版本也在公众号中,回复关键词代码“py001”,就可以下载啦!~
感谢您的阅读,本博客将持续更新技术方面的学习笔记和案例总结。