开发环境:Windows Server 2003 Standard Edition SP1, Visual C++ .Net 2003
(1)基本的欧几里德算法
//基本的欧几里德算法
#include <iostream>
using namespace std;
int main()
{
int m, n, r;
cin>>m; cin>>n;
do {
r = m % n;
if (r == 0) break;
m = n;
n = r;
} while(r);
cout<<n<<endl;
system("pause");
return 0;
}
(2)改进的欧几里德算法,可减少数据的交换赋值
//改进的欧几里德算法,可减少数据的交换赋值
#include <iostream>
using namespace std;
int main()
{
int m, n, r;
cin>>m;
cin>>n;
do {
r = m % n;
if (r == 0)
{
cout<<n<<endl;
break;
}
m = n % r;
if (m == 0)
{
cout<<r<<endl;
break;
}
n = r % m;
if (n == 0)
{
cout<<m<<endl;
break;
}
} while(1);
system("pause");
return 0;
}