初识python: 递归函数

分解质因数: 任何一个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。

比如:

  8 分解质因数是:2*2*2

  10分解质因数是:2*5

  4分解质因数是:2*2

此处使用 python 递归函数 实现对一个数的质因数分解。

代码如下:

#!/user/bin env python
# author:Simple-Sir
# time:2019/8/19 16:55
#  分解质因数

li = []
def fun(n):
    if n != 1:
        for i in range(2, n+1):
            if n % i == 0:
                if n/i == 1.0:
                    print('%d已经无法再分解!' % (n))
                    li.append(i)
                    break
                else:
                    print('%d已被%d分解:%d / %d = %d' % (n,i,n,i,int(n/i)))
                    n = int(n / i)
                    li.append(i)
            else:
                continue
            return fun(n)

def main(n):
    fun(n)
    print('分解完成,{}的质因数是: {}'.format(n,li))

if __name__ == '__main__':
    main(90)

运行结果:

原文地址:https://www.cnblogs.com/simple-li/p/11378436.html