本文實例講述了Python實現的質因式分解算法。分享給大家供大家參考,具體如下:
本來想實現一個其它的基本數學算法問題,但是發現在實現之前必須得先完成分解質因式的算法。
沒有去網上尋找什么比較好的求解算法,純粹是按照自己的理解寫了一個試探性求解算法。也就是在MIT公開課中教授提到的guess-try方法。代碼實現如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/usr/bin/python def PrimeNum(num): r_value = [] for i inrange( 2 ,num + 1 ): for jin range ( 2 ,i): ifi % j = = 0 : break else : r_value.append(i) returnr_value def PrimeFactorSolve(num,prime_list): for n inprime_list: ifnum % n = = 0 : return [n,num / n] def PrimeDivisor(num): prime_range = PrimeNum(num) ret_vale = [] while numnot in prime_range: factor_list = PrimeFactorSolve(num,prime_range) ret_vale.append(factor_list[ 0 ]) num = factor_list[ 1 ] else : ret_vale.append(num) printret_vale PrimeDivisor( 120 ) |
程序執行結果如下:
E:\WorkSpace\01_編程語言\03_Python\python_exp07>pythonpython_exp07.py
[2, 2, 2, 3, 5]
抽取測試了其他的數據,從簡單的例子計算看,結果還是準確的。
希望本文所述對大家Python程序設計有所幫助。
原文鏈接:https://blog.csdn.net/grey_csdn/article/details/71374514