前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python使用递归法对整数进行因数分解

Python使用递归法对整数进行因数分解

作者头像
Python小屋屋主
发布2018-04-16 16:01:56
4.8K0
发布2018-04-16 16:01:56
举报
文章被收录于专栏:Python小屋Python小屋

所谓因数分解,是指把一个整数变成其所有质因数相乘的形式,例如10=2*5, 39000=2*2*2*3*5*5*5*13。

from random import randint

def factors(num, fac=[]):

#每次都从2开始查找因数

for i in range(2, int(num**0.5)+1):

#找到一个因数

if num%i == 0:

fac.append(i)

#继续分解,重复这个过程

factors(num//i, fac)

#注意,这个break非常重要

break

else:

#不可分解了,自身也是个因数

fac.append(num)

facs = []

n = randint(2, 10**8)

factors(n, facs)

result = '*'.join(map(str, facs))

if n == eval(result):

print(n, '=', result)

代码截图如下:

连续几次的运行结果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档