C++求最大公约数和最小公倍数的方法

最大公约数和最小公倍数是数学中一个常见的概念,在C++中也可以用来求解这些问题。C++中求最大公约数和最小公倍数有两种方法:

辗转相除法

辗转相除法是一种求最大公约数的算法,它的基本思想是:用两个数中的较大数去除另一个数,所得的余数继续和另一个数进行除法,直到余数为0,的除数就是最大公约数。

int gcd(int a, int b)
{
  int c;
  while (b != 0)
  {
    c = a % b;
    a = b;
    b = c;
  }
  return a;
}

更相减损术

更相减损术是一种求最大公约数的算法,它的基本思想是:两个数不断相减,直到两个数相等,这个数就是最大公约数。

int gcd(int a, int b)
{
  while (a != b)
  {
    if (a > b)
      a = a - b;
    else
      b = b - a;
  }
  return a;
}

求最小公倍数的方法是:用两个数的乘积除以它们的最大公约数,所得的结果就是最小公倍数。

int lcm(int a, int b)
{
  return a * b / gcd(a, b);
}

以上就是C++中求最大公约数和最小公倍数的方法,通过简单的程序就可以解决这些问题。

本文链接:http://task.lmcjl.com/news/12420.html

展开阅读全文