本文實例講述了Python實現的質因式分解算法。分享給大家供大家參考,具體如下:
本來想實現一個其它的基本數學算法問題,但是發現在實現之前必須得先完成分解質因式的算法。
沒有去網上尋找什么比較好的求解算法,純粹是按照自己的理解寫了一個試探性求解算法。也就是在MIT公開課中教授提到的guess-try方法。代碼實現如下:
#!/usr/bin/pythondef 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_valuedef 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_valePrimeDivisor(120)
程序執行結果如下:
E:/WorkSpace/01_編程語言/03_Python/python_exp07>pythonpython_exp07.py
[2, 2, 2, 3, 5]
抽取測試了其他的數據,從簡單的例子計算看,結果還是準確的。
PS:這里再為大家推薦功能相似的本站在線工具供大家參考:
在線分解質因數計算器工具:
http://tools.jb51.net/jisuanqi/factor_calc
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數學運算技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答