1. 程式人生 > >歐幾裏得算法(求最大公約數)

歐幾裏得算法(求最大公約數)

include spa end IV ios sin int 計算 name

 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的公共約數

歐幾裏得算法(求最大公約數)