數學中兩個數如何求最大的公約數?題目:給定兩個正整數m和n(m>n),求它們的最大公因數,現在小編就來說說關于數學中兩個數如何求最大的公約數?下面内容希望能幫助到你,我們來一起看看吧!
題目:給定兩個正整數m和n(m>n),求它們的最大公因數。
第一種解法:輾轉相除法(歐幾裡得算法)
算法描述:
步驟1:用m除以n,得餘數r;
步驟2:若r=0?算法終止,n是答案;
步驟3:置m=n,n=r;返回步驟1;
算法流程圖:
程序如下:
算法效率分析:當數據增大n倍時,該算法執行次數是增加logn次,所以該算法時間複雜度為O(logn),在實際工程應用中是值得推薦的。
第二種解法:輾轉相減法
算法描述:
步驟1:判斷m和n是否相等,若相等算法終止,m是答案;
步驟2:若m>n? ;則m= m-n否則n=n-m;返回步驟1;
算法流程圖:
程序如下:
算法效率分析:該算法時間複雜度為O(logn),在實際工程應用中也是值得推薦的。
第三種解法:輾轉枚舉法
算法描述:
步驟1:置ret = n;
步驟2:若m %ret=0 ?且n%ret=0?算法終止,ret是答案,否則ret減一,
重複步驟2;
算法流程圖:
程序如下:
算法效率分析:該算法時間複雜度為O(n),在實際工程應用中不值得推薦的。
請關注“程序猿的自我修煉”,我們一起來修煉吧,成為中心的大神!
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!