所谓因数分解,是指把一个整数变成其所有质因数相乘的形式,例如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)
代码截图如下:
连续几次的运行结果:文章来源:https://www.toymoban.com/news/detail-422094.html
文章来源地址https://www.toymoban.com/news/detail-422094.html
到了这里,关于Python使用递归法对整数进行因数分解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!