holyya.com
2025-09-04 08:22:16 Thursday
登录
文章检索 我的文章 写文章
C++实现求两个数的最大公倍数函数
2023-07-06 07:06:50 深夜i     --     --
C++ 最大公倍数 函数

最大公倍数,即两个数公共的最大约数,是中学数学中的常见问题。在实际的编程中,我们经常需要用到求最大公倍数的功能,因此实现求最大公倍数函数对于C++程序员来说是极为必要的。

C++语言提供了两种方法求最大公倍数,一种是辗转相除法,另一种是枚举法。下面我们分别来介绍这两种方法的具体实现。

1.辗转相除法

辗转相除法也称为欧几里得算法,是一种求两个正整数最大公约数的算法。具体的实现方法是:将两个数中较大的数除以较小的数得到余数,再用较小的数除以余数得到新的余数,继续用旧余数除以新余数直到余数为0为止,此时较小的数就是最大公约数。

接下来我们用C++代码实现辗转相除法求两个数的最大公倍数:


#include <iostream>

using namespace std;

int gcd(int a, int b)

{

  if(b == 0)

  

    return a;

  

  return gcd(b, a % b);

}

int lcm(int a, int b)

{

  return a / gcd(a, b) * b;

}

int main()

{

  int a = 6, b = 9;

  cout << lcm(a, b) << endl;

  return 0;

}

2.枚举法

枚举法是一种较为简单但效率较低的求最大公倍数的方法。具体的实现方法是:从两个数中较大的数开始枚举,直到找到一个既能被两个数整除的数为止。

接下来我们用C++代码实现枚举法求两个数的最大公倍数:


#include <iostream>

using namespace std;

int lcm(int a, int b)

{

  int max = (a>b)?a:b;

  for(int i=max;;i++)

  {

    if(i%a==0&&i%b==0)

    

      return i;

    

  }

}

int main()

{

  int a = 6, b = 9;

  cout << lcm(a, b) << endl;

  return 0;

}

总的来说,辗转相除法是一种更加高效的求最大公倍数的方法,而枚举法则适用于较小的数。希望本文对大家学习C++中求最大公倍数的方法有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复