欧几里得算法(求最大公约数)

 1 //求两个数的最大公约数
 2 #include<iostream>
 3 using namespace std;
 4 int f(int m,int n)
 5 {
 6     if(n==0)
 7         return m;
 8     else
 9         return f(n,m%n);
10 }
11 int main(){
12     int a,b;
13     int temp;
14     cin>>a>>b;
15     if(a<b)
16     {
17         temp=a;
18         a=b;
19         b=temp;
20     }
21     cout<<f(a,b)<<endl;
22     return 0;
23 } 

欧几里德算法又称为辗转相除法,用于计算两个非负整数的最大公因数。结果的正确性源于a与b的最大公约数c也是a%b的公共约数

猜你喜欢

转载自www.cnblogs.com/geziyu/p/9195954.html