Python實(shí)現(xiàn)的求解最大公約數(shù)算法示例
本文實(shí)例講述了Python實(shí)現(xiàn)的求解最大公約數(shù)算法。分享給大家供大家參考,具體如下:
使用Python求解兩個(gè)數(shù)的最大公約數(shù)的時(shí)候用到了前面介紹的分解質(zhì)因式。其實(shí),我寫分解質(zhì)因式程序的時(shí)候就是因?yàn)榘l(fā)現(xiàn)在實(shí)現(xiàn)最大公約數(shù)求解的過程中用到了這個(gè)功能。
比較令我開心的是之前學(xué)的一點(diǎn)Python集合處理功能居然在這個(gè)時(shí)候也派上了用場(chǎng),小程序的完成讓人感覺比較舒心。
代碼實(shí)現(xiàn)如下:
#!/usr/bin/python from collections import Counter def PrimeNum(num): r_value =[] for i inrange(2,num+1): for jin range(2,i): if i % j == 0: break else: r_value.append(i) return r_value def PrimeFactorSolve(num,prime_list): for n inprime_list: if num % n == 0: return [n,num / n] def PrimeDivisor(num): num_temp =num prime_range= PrimeNum(num) ret_value =[] while numnot in prime_range: factor_list= PrimeFactorSolve(num,prime_range) ret_value.append(factor_list[0]) num =factor_list[1] else: ret_value.append(num) return Counter(ret_value) def MaxDivisor(num1,num2): dict1 =PrimeDivisor(num1) dict2 =PrimeDivisor(num2) max_divisor= 1 for key1 indict1: if key1 in dict2: if dict1[key1] < dict2[key1]: max_divisor*= (key1 ** dict1[key1]) else: max_divisor*= (key1 ** dict2[key1]) return max_divisor print(MaxDivisor(12,18)) print(MaxDivisor(7,2)) print(MaxDivisor(7,13)) print(MaxDivisor(24,56)) print(MaxDivisor(63,81))
程序的執(zhí)行結(jié)果如下:
E:\WorkSpace\01_編程語(yǔ)言\03_Python\math>python max_divisor.py
6
1
1
8
9
通過驗(yàn)證,計(jì)算結(jié)果準(zhǔn)確。
PS:這里再為大家推薦一款本站相關(guān)在線工具供大家參考:
在線最小公倍數(shù)/最大公約數(shù)計(jì)算工具:
http://tools.jb51.net/jisuanqi/gbs_gys_calc
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
如何對(duì)csv文件數(shù)據(jù)分組,并用pyecharts展示
這篇文章主要介紹了如何對(duì)csv文件數(shù)據(jù)分組,并用pyecharts展示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11python創(chuàng)建列表和向列表添加元素的實(shí)現(xiàn)方法
下面小編就為大家分享一篇python創(chuàng)建列表和向列表添加元素的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)全流程
SQL Server是微軟推出的重量級(jí)的數(shù)據(jù)庫(kù),目前有多個(gè)版本,如2000、2008、2012等,下面這篇文章主要給大家介紹了關(guān)于Python使用pymssql連接SQL?SEVER數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2023-12-12Python自動(dòng)化構(gòu)建工具scons使用入門筆記
這篇文章主要介紹了Python自動(dòng)化構(gòu)建工具scons使用入門筆記,本文講解了安裝scons、scons常用命令、scons使用示例等內(nèi)容,需要的朋友可以參考下2015-03-03人工智能深度學(xué)習(xí)OpenAI?baselines的使用方法
這篇文章主要為大家介紹了人工智能深度學(xué)習(xí)OpenAI?baselines的使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python獲取當(dāng)前計(jì)算機(jī)cpu數(shù)量的方法
這篇文章主要介紹了python獲取當(dāng)前計(jì)算機(jī)cpu數(shù)量的方法,涉及Python操作計(jì)算機(jī)硬件的技巧,代碼簡(jiǎn)單易懂,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04