歐幾里得算法


輾轉相除法, 又名歐幾里德算法(Euclidean algorithm),是求最大公約數的一種方法。它的具體做法是:用較大數除以較小數,再用出現的余數(第一余數)去除除數,再用出現的余數(第二余數)去除第一余數,如此反復,直到最后余數是0為止。如果是求兩個數的最大公約數,那么最后的除數就是這兩個數的最大公約數。

算法描述

用輾轉相除法確定兩個正整數 a 和 b(a≥b) 的最大公因數  :
當   時,    否則   遞歸或循環運算得出結果。
算法流程圖如下:
 
 
 
Java實現
/**
     * 歐幾里得算法
     * @param m 較大數
     * @param n 較小數
     * @return
     */
    public static int gcd(int m, int n) {
        while (true) {
            if ((m = m % n) == 0)
                return n;
            if ((n = n % m) == 0)
                return m;
        }
    }

這里只是作為遞歸的調用了解一下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM