一、什么是最小公倍数
几个数共有的倍数叫做这几个数的公倍数,其中除0以外最小的一个公倍数,叫做这几个数的最小公倍数。
二、算法
假设要求的两个数是a和b,a总是较大的那个数
1、最小公倍数=两个数相乘 / 最大公约数
2、如果a是b的倍数,则最小公倍数是a,如果不是,就从a往后遍历,直到找到能同时将两个数整除的数
三、具体实现
算法1:
void swap(int* pa, int* pb)
{
if (*pa < *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
}
int gcd(int a, int b)
{
while (a % b)
{
int tmp = a;
a = b;
b = tmp % b;
}
return b;
}
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
swap(&a,&b);//令a永远是最大的数
int ret = gcd(a,b);//求最大公约数
printf("最小公倍数是:%d\n",a*b/ret );
return 0;
}
算法2:
void swap(int* pa, int* pb)
{
if (*pa < *pb)
{
int tmp = *pa;
*pa = *pb;
*pb = tmp;
}
}
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
swap(&a,&b);
if (a % b == 0)
printf("最小公倍数是:%d\n", a);
else
{
int i = 0;
for (i = a+1;; i++)
{
if (i % a == 0 && i % b == 0)
{
printf("最小公倍数是:%d\n", i);
break;
}
}
}
return 0;
}
结果展示