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

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

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值