輾轉相除法簡潔介紹

2021-07-23 21:29:34 字數 923 閱讀 7159

//概念以及例項:

求兩個數的最大公約數和最小公倍數

//最大公約數:就是既可以整除numb1,也可以整除numb2,小於兩個數中的最小數(numb1)

//最小公倍數:再拿這兩個數分別除以最大公約數,再乘以最大公約數

$numb1=20

;$numb2=30

;$min

=$numb1

<

$numb2 ? $numb1 : $numb2;

$gys=1

;for

($i=

$min;$i

>=

1;$i--)

}$gbs

=$numb1

*$numb2

/$gys;

echo

"最大公約數為"

;echo

"最小公倍數為"

;echo"";

//輾轉相除法

//每一次拿最大數和最小數做取餘操作(30%20),不等於0(餘10),迴圈繼續執行,上一次計算的餘數(10)做除數,上一次的除數(20)做被除數,(20%10)當等於0的時候,結束,這次的除數(10)為最大公約數.

$numb1=20

;$numb2=30

;$max

=$numb1

>

$numb2 ? $numb1 : $numb2;

$min

=$numb1

+$numb2

-$max;

while

($max

%$min!=0

)echo

"最大公約數為"

;$gbs

=$numb1

*$numb2

/$min;

echo

"最小公倍數為"

;

輾轉相除法原理

輾轉相除法原理 假設有兩個數x和y,存在乙個最大公約數z x,y 即x和y都有公因數z,那麼x一定能被z整除,y也一定能被z整除,所以x和y的線性組合mx ny也一定能被z整除。m和n可取任意整數 對於輾轉相除法來說,思路就是 若x y,設x y n餘c,則x能表示成x ny c的形式,將ny移到左...

約分 輾轉相除法

include using namespace std int main int temp1 int temp2 cin temp1 temp2 int a temp1 int b temp2 while b 0 int temp a b a b b temp cout 輾轉相除法 輾轉相除法是求兩...

模板 輾轉相除法

處理最大公因數時十分好用 但是我證不出來。gcd a,b gcd b,a mod b b 0 設兩數為a b a b 用gcd a,b 表示a,b的最大公約數,r a mod b 為a除以b的餘數,k為a除以b的商,即a b kr。輾轉相除法即是要證明gcd a,b gcd b,r 第一步 令c g...