歐幾里德算法稱為輾轉相除法,用來求已知m、n兩個自然數的公因數。結合程序說明一下輾轉相除的具體情況。
首先看遞歸實現:
1、對輸入的兩個自然數m > n取余數r,使得0<= r < n
2、如果r為0,n即為所求結果,直接返回
3、r不為0,則賦值m=n,n=r從步驟1開始重新執行
兩自然數的公因數的定義說明了計算結果產生的條件。如果步驟1中計算出的余數r = 0,則較小的數為公因數。如果r!=0則自然數m、n的關系可表示為:m = kn + r(其中k為自然數),等式可以證明能整除m的任何數必定能整除n和r;等式進一步可變形為:r = m - kn,說明同時整除m、n的任何數也必定能整除r。也就是說,能整除m、n的數的集合與整除n、r的數的集合相等。所以輾轉相除的方法成立。
再發布一個循環實現歐幾里德算法的版本。
|
新聞熱點
疑難解答
圖片精選