本文实例讲述了Python基于递归算法求最小公倍数和最大公约数。分享给大家供大家参考,具体如下:
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
26
27
28
29
|
# 最小公倍数
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)))
# 最大公约数
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)))
|
运行结果:
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
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/xpresslink/article/details/78875473