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

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

最大公约数
"""
最大公约数的求法:
64 48
"""
x = int(input('x='))
y = int(input('y='))
if x>y:
    x,y = y,x
for factor in range(x,0,-1):
    if x%factor==0 and y%factor==0:
        print('{}和{}的最大公约数是{}'.format(x,y,factor))
        break
x=24
y=36
24和36的最大公约数是12

·

法二:2⃣️
辗转相除法:
144 108
36
108 36
0

"""
x = int(input('x='))
y = int(input('y='))
if x>y:
    x,y = y,x
while x!=0:
    temp = y%x
    y = x
    x = temp
print(y)
"""

# easier edition
x = int(input('x='))
y = int(input('y='))
if x>y:
    x,y = y,x
c,d = x,y
while x!=0:
    y,x = x,y%x
print('{}和{}的最大公约数是{}'.format(c,d,y))
x=260
y=138
138和260的最大公约数是2

·
·
·

最小公倍数

法一:先求出最大公倍数,再求出最小公倍数

# 最小公倍数

# first solution
x = int(input('x='))
y = int(input('y='))
if x>y:
    x,y = y,x
for factor in range(x,0,-1):
    if x%factor==0 and y%factor==0:
        n = x*y//factor
        print('{}和{}的最小公倍数是{}'.format(x,y,n))
        break
x=28
y=42
28和42的最小公倍数是84

法二:同样用辗转相除法

#second solution
    
x = int(input('x='))
y = int(input('y='))
if x>y:
    x,y = y,x
c,d = x,y
while x!=0:
    y,x = x,y%x
n = c*d//y
print('{}和{}的最小公倍数是{}'.format(c,d,n))
x=82
y=58
58和82的最小公倍数是2378
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值