初識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)

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM