最小公倍数的求解方法

Posted laizhenghong2012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最小公倍数的求解方法相关的知识,希望对你有一定的参考价值。

一 写在开头

1.1 本节内容

本文的主要内容是介绍一种两个数最小公倍数(Lowest Common Multiple)的求解方法。

 

二 最小公倍数求法

2.1 算法原理

两个数的公倍数可以是无限多个,但最小公倍数只有一个。在前面的文章中介绍了两数最大公约数的求解方法。这里介绍一种两个数的最小公倍数的求法。其基于的原理是两个数的最小公倍数会等于两个数的乘积除以两个数的最大公约数的结果。即:

LCM(a, b) = (a * b) / GCD(a, b)

下面结合最大公约数的求法使用C语言实现最小公倍数的求法。

 

2.2 算法的C语言实现

 1 /* 辗转相除法求最大公约数 */
 2 long GetGCD(long a, long b)
 3 {
 4     return (a % b == 0) ? b : GetGCD(b, a % b);
 5 }
 6 
 7 /* 求最小公倍数 */
 8 long GetLCM(long a, long b)
 9 {
10     return a / GetGCD(a, b) * b;
11 }

注意:之所以先除以最大公约数再相乘是为了减少溢出可能。

以上是关于最小公倍数的求解方法的主要内容,如果未能解决你的问题,请参考以下文章

PSO算法求解y = x^2的最小值

PSO算法求解y = x^2的最小值

多种方法求解最大公约数与最小公倍数

最小公倍数和最大公约数求解方法

遗传算法求解函数最小值问题及改进-自编程matlab代码

Java 求解划分字母区间