(C )求最大公因子(輾轉相除法)

2021-10-08 02:35:22 字數 674 閱讀 9776

具體演算法也可以看這篇 : 

求任意兩個整數m,n最大公因子(m,n)的方法如下:

若 m=n*q+r      

其中:r為餘數, 滿足 0≤r≤n-1       

則 (m,n)=(n,r)  

且當 r=0時, (m,n)=n

按照這種方法,可以快速而方便地求出任意兩個整數的最大公因子。  

例如,(1500,550)的求解過程如下: 

(1500,550)=(550,400)

=(400,150)=(150,100)

=(100,50)=(50,0)=50 

最終求得1500和550的最大公因子為50。

#include using namespace std;

int hcf(int m, int n)

return m;

}int main(int argc, char** ar**)

int main(int argc, char** ar**) {

int a = hcf(1500, 550);

cout<<"最大公因數是:"《最大公因數是:50

--------------------------------

process exited after 0.1298 seconds with return value 0

輾轉相除法求最大公約數

之前總結過一次高德納taocp中的最大公約數求解,其實課後題中的演算法修改要求實現的是輾轉相除法求解最大公約數。這個題目我最初的理解理解錯了,自然也沒有做出標準答案。現在按照標準答案的解答寫一下相應的 實現 defmaxcommdivisor m,n while m n 0 m m n if m 0...

求最大公約數 輾轉相除法

設求a和b的最大公約數c 則可看做邊長分別為a和b的矩形,可恰好被邊長為c的正方形無縫隙填滿 方法 不斷地用長邊除以短邊取餘數,直到長邊與短邊相等,即為所求正方形 給定平面上的兩個格點p1 x1,y1 p2 x2,y2 線段p1p2上,除p1和p2以外一共有幾個點。示例 p1 3,9 p2 7,1 ...

c語言 輾轉相除法求最大公約數

1 什麼是最大公約數 最大公約數指的是兩個或多個整數共有約數中最大的乙個。如果數a能被數b整除,a就叫做b的倍數,b就叫做a的約數。如,2,4,6的最大公約數 2,4,6 2.12,16 4 12,15,18 3 2 輾轉相除法的說明 輾轉相除法也叫歐幾里德演算法。即兩個整數的最大公約數等於其中較小...