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

  • Post author:
  • Post category: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)


代码截图

如下:


连续几次的

运行结果




版权声明:本文为dongfuguo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。