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

时间:2021-07-03 08:55:02
"""写两个函数,分别求两个整数的最大公约数和最小公倍数,调用这两个函数,并输出结果。两个整数由键盘输入。"""
'''
设两个整数u和v,用辗转相除法求最大公约数的算法如下: 例如:u=4和v=6
if v>u v>u即:4<6
将变量u与v的值互换(使大者u为被除数) 变成 u=6,v=4
while(u/v的余数r!=0) u/v=6/4=1,余数r为2
{ {
u=v(使除数变为被除数u) u=v=4
v=r(使余数变为除数v) v=r=2
} }
输出最大公约数 u/v=4/2=2,余数为0,则最大公约数为r
最小公倍数为:u*v/最大公约数r 最小公倍数为:u*v/r=6*4/2=12
'''
def gongyue(u,v):
if u<v:
t=u
u=v
v=t
r=u%v
while r!=0:
u=v
v=r
r=u%v
return v
def gongbei(u,v,h):
return u*v/h
a=int(input('第一个整数:'))
b=int(input('第二个整数:'))
print('最大公约数为',gongyue(a,b))
print('最小公倍数为',gongbei(a,b,gongyue(a,b)))
"""结果:
第一个整数:4
第二个整数:6
最大公约数为 2
最小公倍数为 12.0
"""