求最大公约数和最小公倍数

 1 import time
 2 
 3 # 初始时间
 4 chuShi = time.time()
 5 
 6 # 求最大公约数
 7 ## 辗转相除法:取两个数中最大的数做除数,较小的数做被除数,用最大的数除较小数,如果余数为0,则较小数为这两个数的最大公约数,
 8 ## 如果余数不为0,用较小数除上一步计算出的余数,直到余数为0,则这两个数的最大公约数为上一步的较小数。
 9 
10 def gcd(n1,n2):
11     if(n1%n2==0):
12         return n2
13     return gcd(n2,n1%n2)
14 
15 ## 求最小公倍数
16 ## 最小公倍数=两整数的乘积 / 最大公约数
17 
18 def k(a=1, b=2):
19       print("最大公约数 "gcd(a,b))
20       print("最小公倍数 "int(a*b / gcd(a,b)))
21       
22 # 结束时间
23 jeiShu = time.time()
24 zongShiJian = jeiShu - chuShi
25 # 总共花费的时间
26 print(zongShiJian)
27 
28 k(407483957, 30479834)

 

posted @ 2018-09-16 16:05  类十三  阅读(91)  评论(0编辑  收藏  举报