当前位置:   article > 正文

Python - 求两数的最大公约数与最小公倍数_python最大公约数和最小公倍数代码

python最大公约数和最小公倍数代码

一.引言

最大公约数 Greatest Common Divisor ,指两个或多个整数共有约数中最大的一个

最小公倍数 Least Common Multiple,指两个或多个整数公有的倍数中最小的一个

二.最大公约数 GCD

最大公约数一定小于等于两数中较小的 num,所以遍历 1- smaller 里所有的数字。

  1. def gcd(x, y):
  2. _gcd = 1
  3. if x > y:
  4. smaller = y
  5. else:
  6. smaller = x
  7. for i in range(1, smaller + 1):
  8. if (x % i == 0) and (y % i == 0):
  9. _gcd = i
  10. return _gcd

三.最小公倍数 LCM

最小公倍数寻找第一个满足整除两数字为0的数字即可,最小公倍数一定大于等于两个 num,所以从二者较大的数字开始遍历,又因为是求最小,所以一旦遍历到满足条件的数字则 break 退出循环。

  1. def lcm(x, y):
  2. _lcm = x * y
  3. if x > y:
  4. greater = x
  5. else:
  6. greater = y
  7. while True:
  8. if (greater % x == 0) and (greater % y == 0):
  9. _lcm = greater
  10. break
  11. greater += 1
  12. return _lcm

四.测试

上面两个是最基础的实现,还有一些效率更高的方法有空可以再梳理一下。

  1. num1 = 36
  2. num2 = 100
  3. print("第一个数字为: %d" % num1)
  4. print("第二个数字为: %d" % num2)
  5. print("最大公约数为", gcd(num1, num2), "最小公倍数为", lcm(num1, num2))
  1. 第一个数字为: 36
  2. 第二个数字为: 100
  3. 最大公约数为 4 最小公倍数为 900

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/425884
推荐阅读
相关标签
  

闽ICP备14008679号