1、连续整数检测法。
#include<iostream>
using namespace std;
int goc(int m, int n)
{
int t;
if (m>n)
t = n;
else
t = m;
while (t)
{
if (m%t == 0 && n%t == 0)
{
break;
}
else t = t - 1;
}
return t;
}
int main()
{
int a=goc(16, 6);
cout << a << endl;
return 0;
}
2:欧几里德算法
int goc(int m,int n)
{
if (m<n)
{
swap(m, n);
}
return n == 0 ? m: goc(n, m%n);
}
int main()
{
int a=goc(6, 16);
cout << a << endl;
return 0;
}
3.公因数算法
int goc(int m, int n)
{
if (m<n)
{
swap(m, n);
}
int r=m%n;
while (r!=0)
{
m = n;
n = r;
r = m%n;
}
return n;
}
int main()
{
int a=goc(6, 16);
cout << a << endl;
return 0;
}