最大公约数与最小公倍数
1|0最大公约数与最小公倍数
1|1定义
-
对于两个整数
,如果 ,那么 就称为 的公约数,其中最大的称为 的最大公约数,记作 。一般地,可以类似地定义 个整数 的公约数和最大公约数,后者记作 。 -
对于两个整数
,如果 ,那么 就称为 的公倍数,其中最小的称为 的最小公倍数,记作 。一般地,可以类似地定义 个整数 的公倍数和最小公倍数,后者记作 。
1|2性质
-
对于任意整数
, ,即整数同时成倍放大,最大公约数也放大相同倍数,该结论同样适用于最小公倍数。 -
对于任意整数
, ,即一个整数加上另一个整数的任意倍数,它们的最大公约数不变。该性质不适用于最小公倍数。 -
,以及一个显然的推论 。该结论同样适用于最小公倍数。- 这是计算多元最大公约数的主要手段。
- 说明了最大公约数的运算具备某种”结合律“。
-
,最大公约数 最小公倍数 原来两个数的乘积。
1|3辗转相除法
利用性质2.可以给出一个高效计算两数最大公约数的算法:每次让较大的数对较小的数取模(相当于较大数减去了若干倍较小数,最高效地运用了性质2.,而且运用模运算不必区分两数大小),可以缩小问题规模而保持最大公约数不变,然后重复这个步骤。直到其中一个数变成
最坏情况下时间复杂度为
值得注意的是,相近规模下能让辗转相除法执行次数最多的数是相邻的两个斐波那契数,对于绝大多数情况,辗转相除法的时间可以忽略不计。
压行简化版:
再利用性质4.,用两数之积除去最大公约数便得到了最小公倍数。
因为
1|4例题
我们可以枚举
考虑优化这个程序。我们其实并不需要枚举两次,因为对于不同的
一组
所以要对此进行特判,若
由性质4.当积相同且
代码中为什么枚举到
与上题类似,枚举一个数的约数再检验即可。
__EOF__

本文链接:https://www.cnblogs.com/kdlyh/p/17874273.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下