编程算法实例-最小公倍数
两个或多个整数公有的倍数称为公倍数,其中最小的正整数称为最小公倍数(LCM),记作[a,b]或lcm(a,b)。例如,12和18的公倍数有36、72等,最小公倍数为36。
两数的最小公倍数是它们公有的倍数中最小的正整数,可通过质因数分解、短除法或公式法(结合最大公约数)计算得出。
计算方法
1.分解质因数法:
将两数分别分解质因数,如12=2²×3,18=2×3²;
取所有质因数的最高次幂相乘:2²×3²=36。
2.短除法:
用两数的公约数连续相除,直至商互质;
所有除数与最终商的乘积即为LCM。例如,求18和24的最小公倍数:
2 | 18 24
3 | 9 12
| 3 4
LCM=2×3×3×4=72。
3.公式法:
若已知两数最大公约数(GCD),则LCM=两数乘积÷GCD。例如,48和72的最大公约数为24,LCM=48×72÷24=144。
4.特殊情况处理
4.1 互质关系:若两数互质(如7和15),LCM=两数乘积。
4.2 倍数关系:若一数是另一数的倍数(如24和8),LCM为较大数。
#include <stdio.h>//
int minMultipleNum(int n1, int n2) {int num = 0;int a = n1;int b = n2;//while (n2 != 0) {num = n1 % n2;n1 = n2;n2 = num;}num = a * b / n1;//return num;
}int main()
{int n1 = 18;int n2 = 24;int num = minMultipleNum(n1, n2);printf("num = %d\n",num);return 0;
}
num = 72