0


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

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

from random import randint

def factors(num, fac=[]):

  1. #每次都从2开始查找因数
  2. for i in range(2, int(num**0.5)+1):
  3. #找到一个因数
  4. if num%i == 0:
  5. fac.append(i)
  6. #继续分解,重复这个过程
  7. factors(num//i, fac)
  8. #注意,这个break非常重要
  9. break
  10. else:
  11. #不可分解了,自身也是个因数
  12. fac.append(num)

facs = []

n = randint(2, 10**8)

factors(n, facs)

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

if n == eval(result):

  1. print(n, '=', result)

代码截图如下:

连续几次的运行结果

标签: python js 算法

本文转载自: https://blog.csdn.net/dongfuguo/article/details/118704667
版权归原作者 dongfuguo 所有, 如有侵权,请联系我们删除。

“Python使用递归法对整数进行因数分解”的评论:

还没有评论