Python案例001:将一个正整数分解质因数

【难度】★☆

【题目】将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5

【答题思路】

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”,就可以下载啦!~

Python案例001:将一个正整数分解质因数_第1张图片

感谢您的阅读,本博客将持续更新技术方面的学习笔记和案例总结。

你可能感兴趣的:(Python)