求两个数的最大公约数
方法一
#include<iostream>
using namespace std;
int main()
{
int m,n,g;
cin>>m>>n;
g=m>n?n:m;//最大公约数有可能是二者之间的最小值
while((m%g!=0||n%g!=0))
g--;
cout<<g<<endl;
return 0;
}
方法二
辗转相除法(欧几里德算法)
#include<iostream>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
int r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
cout<<n<<endl;
return 0;
}
浙公网安备 33010602011771号