最大公约数,最小公倍数,质因式分解

目录

简单代码算出最大公约数,最小公倍数:

辗转相除法得到最大公约数:

两数相乘倒序最小公倍数:

分解质因式, 打印输出, 并且存到列表

主程序:

 由质因式得到最小公倍数:


简单代码算出最大公约数,最小公倍数:


# 最大公约数和最小公倍数
a = int(input('please enter 1st num:'))
b = int(input('please enter 2nd num:'))
s = a * b
while a % b != 0:
    a, b = b, (a % b)
print(b, '是最大公约数')
print(s//b, '是最小公倍数')

辗转相除法得到最大公约数:

# 思想:求出每个正数的质因式子,max和for循环实现

def max_div(m, n):# 得到最大公约数

#算法:除法, 函数作用较为单一

    r = 1

    while True:

        r = m % n

        if r == 0:

            return n

        m = n

        n = r

两数相乘倒序最小公倍数:

def min_times(m, n):

    # 这里不要用 m = max(m, n) n = min(m, n)后面的n比较的值是更新的m和原来的n

    _min = m * n

    for i in range(m * n, m - 1, -1):

        if i % m == 0 and i % n == 0 and i < _min:

            _min = i

    return _min

分解质因式, 打印输出, 并且存到列表

def fun(n):

    x = 1

    flag = True

    lst = []

    print("{}=".format(n), end='')

    while n != 1:

        x += 1

        while n % x == 0:

            lst.append(x)

            n /= x

            if flag:

                flag = False

                print(x, end='')

            else:

                print("*{}".format(x), end='')

    print()

    return lst

主程序:

if __name__ == '__main__':

    m = int(input('Enter a integer number:'))

    n = int(input('Enter the second integer number:'))



    print('最大的公约数为', max_div(m, n))

print('最小公倍数为', min_times(m, n))

 由质因式得到最小公倍数:

l1 = fun(m)

l2 = fun(n)

for i in l1:

    if i not in l2:

        l2.append(i)

k = 1

for i in l2:

    k *= i

print('最小公倍数为:', k)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风起风里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值