Algorithm Gossp (18) 最大公因数、最小公倍数、因式分解

前言

This Series aritcles are all based on the book 《经典算法大全》; 对于该书的所有案例进行一个探究和拓展,并且用python和C++进行实现; 目的是熟悉常用算法过程中的技巧和逻辑拓展。

提出问题

Algorithm Gossi:p 最大公因数、最小公倍数、因式分解

说明

关于数论基础的最大公因数和最小公倍数这里不加赘述,可以查看算法导论的推导。

简单说明

其本质上基础理论是任何一个整数都能分解为质数的幂的乘积, 这里有两个特性
- 1, 辗转相除法 (A, B) = (B, r ) 其中 A,B的最大公约数就是B和A,B相处余数的最大公约数
- 2, 最大公约数 * 最大公倍数 = A*B

分析和解释

代码

python 求最大公约数

def GCD(m,n):
    if n==0:
        return m
    return GCD(n, m%n)

python 求最小公倍数

def LCM(m,n):
    return m*n / (GCM(m,n))

拓展和关联

数论里面有很多可以缩减计算的方法, 有兴趣的可以看看。

后记

参考书籍

  • 《经典算法大全》
  • 维基百科
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值