Python實(shí)現(xiàn)的求解最小公倍數(shù)算法示例
本文實(shí)例講述了Python實(shí)現(xiàn)的求解最小公倍數(shù)算法。分享給大家供大家參考,具體如下:
簡(jiǎn)單分析了一下,前面介紹的最大公約數(shù)的求解方法跟最小公倍數(shù)求解方法類似,只需要改一個(gè)簡(jiǎn)單的條件,然后做一點(diǎn)簡(jiǎn)單的其他計(jì)算。問題的解決也是基于分解質(zhì)因式的程序。
程序?qū)崿F(xiàn)以及測(cè)試case代碼如下:
#!/usr/bin/python
from collections import Counter
def PrimeNum(num):
r_value =[]
for i in range(2,num+1):
for j in range(2,i):
if i % j == 0:
break
else:
r_value.append(i)
return r_value
def PrimeFactorSolve(num,prime_list):
for n in prime_list:
if num % n == 0:
return [n,num / n]
def PrimeDivisor(num):
num_temp =num
prime_range= PrimeNum(num)
ret_value =[]
while num not 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 LeastCommonMultiple(num1,num2):
dict1 =PrimeDivisor(num1)
dict2 =PrimeDivisor(num2)
least_common_multiple= 1
for key in dict1:
if key in dict2:
if dict1[key] > dict2[key]:
least_common_multiple*= (key ** dict1[key])
else:
least_common_multiple*= (key ** dict2[key])
for key in dict1:
if key not in dict2:
least_common_multiple*= (key ** dict1[key])
for key in dict2:
if key not in dict1:
least_common_multiple*= (key ** dict2[key])
return least_common_multiple
print(LeastCommonMultiple(12,18))
print(LeastCommonMultiple(7,2))
print(LeastCommonMultiple(7,13))
print(LeastCommonMultiple(24,56))
print(LeastCommonMultiple(63,81))
程序執(zhí)行結(jié)果:
E:\WorkSpace\01_編程語(yǔ)言\03_Python\math>pythonleast_common_multiple.py
36
14
91
168
567
通過驗(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ì)有所幫助。
- python求最大公約數(shù)和最小公倍數(shù)的簡(jiǎn)單方法
- Python自定義函數(shù)實(shí)現(xiàn)求兩個(gè)數(shù)最大公約數(shù)、最小公倍數(shù)示例
- Python實(shí)現(xiàn)利用最大公約數(shù)求三個(gè)正整數(shù)的最小公倍數(shù)示例
- Python基于遞歸算法求最小公倍數(shù)和最大公約數(shù)示例
- python輾轉(zhuǎn)相除法求最大公約數(shù)和最小公倍數(shù)的實(shí)現(xiàn)
- Python基于遞歸和非遞歸算法求兩個(gè)數(shù)最大公約數(shù)、最小公倍數(shù)示例
- Python 代碼實(shí)現(xiàn)列表的最小公倍數(shù)
- 最小公倍數(shù)Python實(shí)現(xiàn)的方法例子
相關(guān)文章
Python實(shí)現(xiàn)GUI學(xué)生管理系統(tǒng)的示例代碼
這篇文章主要為大家介紹了如何留Python語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易的GUI學(xué)生管理系統(tǒng),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考下2022-06-06
Python實(shí)現(xiàn)自動(dòng)生成請(qǐng)假條
這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)用Python來批量生成請(qǐng)假條,這回既學(xué)了東西又做了事情,兩不誤!感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-12-12
使用python畫社交網(wǎng)絡(luò)圖實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于如何使用python畫社交網(wǎng)絡(luò)圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python 對(duì)圖片進(jìn)行簡(jiǎn)單的處理
介紹一些圖片處理的Python代碼,有了這些處理代碼,我們可以很方便的處理一些圖片,Python這里處理圖片一般都使用Pillow包,有此需求的朋友可以參考下2021-06-06
python實(shí)現(xiàn)冒泡排序算法的兩種方法
本篇文章主要介紹了python實(shí)現(xiàn)冒泡排序的兩種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
使用Python實(shí)現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注
論文繪圖時(shí)經(jīng)常需要多圖嵌套,正好最近繪圖用到了,所以這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注,感興趣的可以了解下2024-02-02

