正整数a和正整数b的最小公倍数是指能被a和b整除的最小正整数求a和b的最小公倍数

时间:2023-02-18 19:02:21
#include<stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
int i = 0;
int c = a > b ? a : b;//这一步的目的是求出a和b谁的值最大因为对于最小公倍数而言哪怕最小也是a和b中大的那个例如2和4最小公倍数就是4
for (i = c;; i++)
{
if (i%a == 0 && i%b == 0)
{
printf("%d", i);
break;
}
}
return 0;
}//这是其中一种解法

运行截图

正整数a和正整数b的最小公倍数是指能被a和b整除的最小正整数求a和b的最小公倍数

//第二种解法
#include<stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
int c = a > b ? a : b;//同上求出a与b谁最大
while (1)
{

if ((c / a) == b || (c / b) == a||(c/a)==a||(c/b)==b)
{
printf("%d", c);
break;
}
else
c++;
}
return 0;
}//这种方法用的就是假设c为最小公倍数那么它分别除以a和b要么得到b和a要么就得到a和b本身

运行结果

正整数a和正整数b的最小公倍数是指能被a和b整除的最小正整数求a和b的最小公倍数

第三种方法就是第二种方法的变式

#include<stdio.h>
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
int c = a > b ? a : b;
while ((c*a) % b != 0)
{
c++;
}//这里可以理解为最小公倍数乘上两个数中的其中一个再模上另一个数如果不等于0那么就让c不断加1当满足这个条件的时候也就意味着c也就是最小公倍数了
//举个例子2 5最小公倍数是10通过双目求出谁大谁小之后在这里c就为5,5乘上一个2为10模2为0所以c*a是最小公倍数
printf("%d", c*a);
return 0;
}

运行结果与上面是一样的