c语言

c语言求最小公倍数的方法有哪些

小亿
476
2023-08-09 05:46:42
栏目: 编程语言

在C语言中,求最小公倍数的方法有以下几种:

  1. 暴力法:从1开始逐个尝试两个数的倍数,直到找到它们的公倍数。
int lcm(int a, int b)
{
int max = (a > b) ? a : b;
int lcm = max;
while (1)
{
if (lcm % a == 0 && lcm % b == 0)
break;
lcm += max;
}
return lcm;
}
  1. 辗转相除法:利用两个数的最大公约数来求最小公倍数。最小公倍数等于两数的乘积除以最大公约数。
int gcd(int a, int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
int lcm(int a, int b)
{
return (a * b) / gcd(a, b);
}
  1. 穷举法:通过遍历所有可能的公倍数,比较大小,找出最小的公倍数。
int lcm(int a, int b)
{
int max = (a > b) ? a : b;
int lcm = max;
while (1)
{
if (lcm % a == 0 && lcm % b == 0)
break;
lcm += max;
}
return lcm;
}
  1. 使用最小公约数的性质:最小公倍数等于两数乘积除以最大公约数。
int gcd(int a, int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
int lcm(int a, int b)
{
return (a * b) / gcd(a, b);
}

这些方法都可以用来求解最小公倍数问题,具体使用哪种方法可以根据具体情况选择。

0
看了该问题的人还看了