更相減損術求解最大公約數
求解兩個int型別數字a, b的最大公約數的常用的辦法一般有兩種:第一種是輾轉相除術,第二種是更相減損術,下面使用更相減損術求解最大公約數:
設A > B,A = ax, B = bx 則C = A - B = ax - bx,所以A、B、C的最大公約數也為x,所以可以轉換為:
如果A > B,則 gcd(A,B) = gcd(B,A-B)
如果A < B,則 gcd(A,B) = gcd(A,B-A)
下面是具體的程式程式碼:
class Solution:
def gcd(self, a: int, b: int) -> int:
while a != b:
if a > b:
a = a - b
else:
b = b - a
return a
if __name__ == '__main__':
print(Solution().gcd(eval(input()), eval(input())))
相關文章
- 更相減損法(求最大公約數)
- 輾轉相除法與更相減損術(求最大公約數)
- 更相減損法求最大公約數(Greatest Common Divisor)
- C語言 用更相減損術求最大公約數,最小公倍數C語言
- 求最大公約數不同演算法的時間比較(輾轉相除法,更相減損術等)演算法
- 更相減損術的應用
- 證明:輾轉相除法與更相減損術
- 求最大公約數 & 最大公約數
- 求最大公約數 最簡手寫加STL
- 004 最大公約數
- C. 最大公約數
- 最大公約數,最小公倍數
- 最小公倍數&&最大公約數
- 最大公約數和最小公倍數
- 最小公倍數和最大公約數
- 求最大公公約數(最大公因數)—— 歐幾里得演算法演算法
- acwing246 區間最大公約數
- 求最大公約數(輾轉相除法)
- C++:最小公倍數與最大公約數C++
- 【數學問題】最大公約數與最小公倍數
- P8792 [藍橋杯 2022 國 A] 最大公約數
- 6-8 使用函式求最大公約數 (10分)函式
- abc112D 和為定值時的最大公約數
- 演算法設計與分析:求兩個自然數的最大公約數演算法
- 求解數獨
- NumPy 差分、最小公倍數、最大公約數、三角函式詳解函式
- 求兩個正整數的最大公約數與最小公倍數--C#實現C#
- SciTech-Mathmatics-Analysis: 定積分 求解的“十大公式”公式
- python語言程式設計——求最大公約數和最小公倍數演算法Python程式設計演算法
- 【JAVA習題六】輸入兩個正整數m和n,求其最大公約數Java
- 連求最大公約數都不會,我怕不是上了個假大學
- 幾何約束求解思維框架框架
- 逆向z3求解約束器
- 演算法第四版-找兩個數的最大公約數演算法演算法
- CLIPPO:純影像的 CLIP,引數減半且更強大!
- 英國半數成人算術水平相當於小學 致每週損失35億元
- AI走向“戰爭技術”,是減少損傷還是推向災難AI
- 斯特林數求解