最大公約數與最小公倍數的求法 Python

2021-09-26 12:51:54 字數 761 閱讀 6860

最大公約數與最小公倍數的求法:

1. 對輸入的兩個數判斷大小,保證:a > b

2. 進行迴圈,直到b =

0: temp = b

b = a % b

a = temp

# 另一種表達方式為: a, b = b, a % b

3. 最後返回b就是最大公約數

最小公倍數就是兩者的乘積除以最大公倍數

def

func

(num1, num2)

:'''

求最大公約數和最小公倍數

:param num1: 第乙個數字

:param num2: 第二個數字

:return: 最小公倍數, 最大公約數

'''if num1 < num2:

# 判讀兩個整數的大小,目的為了將大的數作為除數,小的作為被除數

num1, num2 = num2, num1 # 如果if條件滿足,則進行值的交換

vari1 = num1 * num2 # 計算出兩個整數的乘積,方便後面計算最小公倍數

while num2 !=0:

# 判斷餘數是否為0, 如果不為0,則進入迴圈

num1, num2 = num2, num1 % num2

# 兩者乘積除以最大公約數就是最小公倍數

vari1 //= num1

return vari1, num1

最大公約數 最小公倍數

求最大公約數最直接的辦法是從兩數中較小數與2之間的所有整數中乙個乙個的找。但這個方法有點浪費。有兩種有名的方法 1.輾轉相除法2.更相減損之術這兩種方法比較有名,而且現在人教版的高中數學中已經介紹了這兩種方法。下面這個是第2個,因為它只需要加減法就可以,效率高。int maxfactor unsig...

最小公倍數 最大公約數

求最小公倍數演算法 最小公倍數 兩整數的乘積 最大公約數 求最大公約數演算法 1 輾轉相除法 有兩整數a和 b a b得餘數c 若c 0,則 b即為兩數的最大公約數 若c 0,則 a b,b c,再回去執行 例如求27和 15的最大公約數過程為 27 15 餘12 15 12餘3 12 3餘0 因此...

最大公約數,最小公倍數

兩個數最大公約數 輾轉相除法 在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。兩個整數的最大公約數是能夠同時整除它們的最大的正整數。輾轉相除法基於如下原理 兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。例如 用 a,b 來表示a和b的最大公約數。已知a,b,c為正整數...