Python基于遞歸算法求最小公倍數(shù)和最大公約數(shù)示例
本文實例講述了Python基于遞歸算法求最小公倍數(shù)和最大公約數(shù)。分享給大家供大家參考,具體如下:
# 最小公倍數(shù)
def lcm(a, b, c=1):
if a * c % b != 0:
return lcm(a, b, c+1)
else:
return a*c
test_cases = [(4, 8), (35, 42), (5, 7), (20, 10)]
for case in test_cases:
print('lcm of {} & {} is {}'.format(*case, lcm(*case)))
def lcm(a, b):
for i in range(2, min(a,b)+1):
if a % i == 0 and b % i == 0:
return i * lcm(a//i, b//i)
else:
return a*b
test_cases = [(4, 8), (5, 7), (24, 16), (35, 42)]
for case in test_cases:
print('lcm of {} & {} is {}'.format(*case, lcm(*case)))
# 最大公約數(shù)
def gcd(a, b):
if a == b:
return a
elif a-b > b:
return gcd(a-b, b)
else:
return gcd(b, a-b)
test_cases = [(35, 14), (88, 66), (5, 4), (20, 10)]
for case in test_cases:
print('GCD of {} & {} is {}'.format(*case, gcd(*case)))
運行結(jié)果:
lcm of 4 & 8 is 8
lcm of 35 & 42 is 210
lcm of 5 & 7 is 35
lcm of 20 & 10 is 20
GCD of 35 & 14 is 7
GCD of 88 & 66 is 22
GCD of 5 & 4 is 1
GCD of 20 & 10 is 10
PS:這里再為大家推薦一款本站相關(guān)在線工具供大家參考:
在線最小公倍數(shù)/最大公約數(shù)計算工具:
http://tools.jb51.net/jisuanqi/gbs_gys_calc
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學運算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
- python求最大公約數(shù)和最小公倍數(shù)的簡單方法
- Python自定義函數(shù)實現(xiàn)求兩個數(shù)最大公約數(shù)、最小公倍數(shù)示例
- Python實現(xiàn)的求解最小公倍數(shù)算法示例
- Python實現(xiàn)利用最大公約數(shù)求三個正整數(shù)的最小公倍數(shù)示例
- python輾轉(zhuǎn)相除法求最大公約數(shù)和最小公倍數(shù)的實現(xiàn)
- Python基于遞歸和非遞歸算法求兩個數(shù)最大公約數(shù)、最小公倍數(shù)示例
- Python 代碼實現(xiàn)列表的最小公倍數(shù)
- 最小公倍數(shù)Python實現(xiàn)的方法例子
相關(guān)文章
Python函數(shù)關(guān)鍵字參數(shù)及用法詳解
本文主要介紹了Python函數(shù)關(guān)鍵字參數(shù)及用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03
如何計算 tensorflow 和 pytorch 模型的浮點運算數(shù)
FLOPs 是 floating point operations 的縮寫,指浮點運算數(shù),可以用來衡量模型/算法的計算復(fù)雜度。本文主要討論如何在 tensorflow 1.x, tensorflow 2.x 以及 pytorch 中利用相關(guān)工具計算對應(yīng)模型的 FLOPs,需要的朋友可以參考下2022-11-11
Python range、enumerate和zip函數(shù)用法詳解
這篇文章主要介紹了Python range、enumerate和zip函數(shù)用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09
python進程池實現(xiàn)的多進程文件夾copy器完整示例
這篇文章主要介紹了python進程池實現(xiàn)的多進程文件夾copy器,結(jié)合完整實例形式分析了Python基于多進程與進程池的文件操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-11-11
詳解Python的Django框架中的模版相關(guān)知識
這篇文章主要介紹了Python的Django框架中的模版相關(guān)知識,模版的存在大大簡化了創(chuàng)作頁面時HTML的相關(guān)工作,需要的朋友可以參考下2015-07-07

