python计算两个数的最大公约数和最小公倍数

这篇文章主要介绍了python计算两个数的最大公约数和最小公倍数,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

# 最大公因数用math库计算,最小公倍数运用定理计算:两数乘积 = 两数的最大公因数 × 两数的最小公倍数
import math
def num(a,b):
    GreatestCommonDivisor = math.gcd(a, b)
    LeastCommonMultiple = math.lcm(a, b)
    return GreatestCommonDivisor, LeastCommonMultiple

最大公约数

# 辗转相除法,返回最大公约数
def gcd(a, b):
    while a != 0:
        # 如果a>b,那么执行一次之后,a b交换值,效果为 a,b=b,a
        # 如果a=b,那么执行一次之后,直接出结果
        # 如果a<b,那么执行开始,辗转相除也就开始了
        a, b = b % a, a
    return b
# 辗转相除法,返回最大公约数
def gcd(a, b):
    return a if b == 0 else gcd(b, a % b)

# 更相减损法,返回最大公约数
def gcd(a, b):
    while a != b:
        if a>b:
            a, b=b, a-b
        else:
            a, b=b, b-a
    return b

def jia(x, y):
    # 获取最小值
    smaller = y if x > y else x
    # 从1开始找,满足条件一次,hcf就更新一次,记录的一直是公因数里较大的那个
    # 循环结束时,最终的hcf就是最大的公因数
    for i in range(1, smaller + 1):
        if ((x % i == 0) and (y % i == 0)):
            hcf = i
    return hcf

def jian(x, y):
    smaller = y if x > y else x
    # 从他们之间的最小的那个开始找
    # 因为数是逐渐减小的,所以第一次满足条件的那一个就是最大公约数,可直接跳出循环
    while smaller>0:
        if((x % smaller == 0) and (y % smaller == 0)):
            break;
        smaller-=1
    return smaller

最小公倍数

# 定义函数,获取最小公倍数
def lcm(x, y):
    greater = x if x > y else y
    while True:
        if ((greater % x == 0) and (greater % y == 0)):
            lcm = greater
            break
        greater += 1
    return lcm

# 两数乘积 = 两数的最大公因数 × 两数的最小公倍数
# 如果多于两个数就不存在这个性质了
def zhong(a, b):
    num=a*b
    while a != 0:
        a, b = b % a, a
    return int(num/b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值