本文实例讲述了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