为了更好的了解算法的概念,今天会分享一些C++求最大公约数几种常见的算法。
第一种:穷举法之一
穷举法,也叫枚举法,求最大公约数时从两者中较小的数开始,由大到小列举,直到找到第一个公约数为止。
解释:拿其中一个数出来,用一个临时变量(tem)保存,每次都把那两个数除以这个临时变量。如果能除断,直接返回tem;如果不能除断,tem- -,直到都能除断,再返回tem。tem就是它们的最大公约数。
#include <iostream>
using namespace std;
int CommFactor1(int m, int n); //函数的声明
int main()
{
int a, b;
cin >> a >> b;
cout << "这两个数的最大公约数为:" << CommFactor1(a,b)<< endl;
return 0;
}
int CommFactor1(int m,int n)
{
int tem;
for (tem = m;; tem--)
{
if (m % tem == 0 && n % tem == 0