当前位置: 首页 > biancheng >正文

求最大公约数和最小公倍数,附python实现

1、求最大公约数

1)采用辗转相除法

例如,需要求63和117的最大公约数
[ 117 ] = 1 ∗ [ 63 ] + 54 [ 63 ] = 1 ∗ [ 54 ] + 9 [ 54 ] = 6 ∗ [ 9 ] + 0 [117] = 1*[63]+54\\ [63] = 1*[54]+9\\ [54] = 6*[9]+0 [117]=1[63]+54[63]=1[54]+9[54]=6[9]+0
可知,最大公约数为9

验证:
117 9 = 13 \frac{117}{9}=13 9117=13
63 9 = 7 \frac{63}{9}=7 963=7

得证,117和63的最大公约数为9

python代码实现:

"""
	@author: yaunsine
	@date: 2023/03/24
	求最大公约数
"""
def get_max_gys(a:int, b:int)->int:
    while b != 0:
        tmp = a
        a = b
        b = tmp % b
    return a

print(get_max_gys(117, 63))

2、求最小公倍数

已知最大公约数求最小公倍数

通过117和63的最大公约数9,求最小公倍数。

117 9 ∗ 63 9 ∗ 9 = 819 \frac{117}{9}*\frac{63}{9}*9=819 91179639=819

验证:
819 = 117 ∗ 7 819 = 63 ∗ 9 819=117*7\\ 819=63*9 819=1177819=639
得证,117和63的最小公倍数为819

python代码实现:

"""
	@author: yaunsine
	@date: 2023/03/24
	求最小公倍数
"""
def get_max_gys(a:int, b:int)->int:
    while b != 0:
        tmp = a
        a = b
        b = tmp % b
    return a

def get_max_gbs(a:int, b:int)->int:
    max_gys = get_max_gys(a, b)
    return (a * b) // max_gys

print(get_max_gbs(117, 63))

相关文章:

  • # WGCNA | 不止一个组的WGCNA怎么分析嘞!?~(四)(共识网络分析-第四步-共识模块与性状相关联)
  • OkHttp封装
  • Numpy改变数组形状
  • 访问修饰符,关键字标识符static,final,abstract,interface,extends的作用和区别
  • 千人规模亚马逊云科技出海日将于6月9日开启,助推企业出海出圈
  • 【HTML】form标签
  • 【2023】Redis数据类型
  • 19.1 JavaWeb三层架构-(客户信息管理)
  • 实战干货,pytest自动化测试-Git中的测试用例运行(详细)
  • 【MySQL】一文带你了解数据库约束