首先求2个数的最小公倍数,我们就必须知道什么叫最小公倍数?
最⼩公倍数是;指两个或多个整数共有倍数中最⼩的⼀个。
在这里,小生将会分享2个方法来解答此题
法一:枚举法
1公倍数⼀定⼤于两个数中的一个,从两个数中的较⼤值开始枚举;
- 从⼩到⼤依次判断能否同时整除这两个数,若某个数满⾜同时被两个数整除,则其为最小公倍数
Ok~~话不多,上代码
#include<stdio.h>
int main()
{
int n = 0, m = 0;
scanf("%d %d", &n, &m);// n:被除数 m:除数
int max = (n > m) ? n : m;//求2个数的最大值
while (1)
{
if ((max % n == 0) && (max % m == 0))
{
printf("最小公倍数:%d\n", max);
break;
}
max++;//依次让 max + 1,直到找到一个数可以同时整除n,m
}
return 0;
}
运行结果:
法二:最⼩公倍数可以由两数乘积除以两数的最⼤公约数求得
#include<stdio.h>
int main()
{
//求2个数的最小公倍数 = 2 个数之积 / 2个数的最大公约数
//利用辗转相除法求最大公约数:这种方法可以不用比较2个数的大小
int n = 0, m = 0;
scanf("%d %d", &n, &m);// n:被除数 m:除数
int a = n * m;//先用a把 m*n 的值存起来,因为后面m,n的值会变
int c = 0;
while (c = n % m)
{
//辗转相除法求最大公约数
n = m;
m = c;
}
printf("最小公倍数:%d\n",a/m);//m 表示辗转相除后求得最大公约数 注意:( n * m ) / m 是错误的写法
return 0;
}
运行结果: