輾轉相除法
最大公約數和最小公倍數的求解方法有很多種,但是我們普遍認為輾轉相除法是最好的。輾轉相除法的步驟如下:
- 比較兩數,並使m>n;
- 將m作被除數,n做除數,相除后余數為r;
- 循環判斷r,若r==0,則n為最大公約數,結束循環。若r !=0 ,執行m=n,n=r;
最大公約數
def gcd(x, y): m = max(x, y) n = min(x, y) while m%n: m, n = n, m%n return n
最小公倍數
def lcm(x, y): m = max(x, y) n = min(x, y) while m%n: m, n = n, m%n return x*y//n
python自帶gcd函數
>>> import math >>> print(math.gcd(10,15)) 5