当前位置: 首页 > news >正文

求最大公约数

求两个数的最大公约数

方法一

#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;
}