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

2021-09-12 00:01:09 字數 931 閱讀 9953

求最小公倍數的演算法:

最小公倍數 = 兩個整數的乘積 / 最大公約數

所以我們首先要求出兩個整數的最大公約數, 求兩個數的最大公約數思路如下:

求最大公約數演算法:

整數a對整數b進行取整, 餘數用整數c來表示 舉例: c = a % b

如果c等於0,則c就是整數a和整數b的最大公約數

如果c不等於0, 將b賦值給a, 將c賦值給b ,然後進行 1, 2 兩步,直到餘數為0, 則可以得知最大公約數

3. 程式**實現如下:

def fun(num1, num2): # 定義乙個函式, 兩個形參

if num1 < num2: # 判讀兩個整數的大小,目的為了將大的數作為除數,小的作為被除數

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

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

vari2 = num1 % num2 # 對2個整數進行取餘數

while vari2 != 0: # 判斷餘數是否為0, 如果不為0,則進入迴圈

num1 = num2 # 重新進行賦值,進行下次計算

num2 = vari2

vari2 = num1 % num2 # 對重新賦值後的兩個整數取餘數

# 直到 vari2 等於0,得到最到公約數就退出迴圈

vari1 /= num2 # 得出最小公倍數

print("最大公約數為:%d" % num2) # 輸出

print("最小公倍數為:%d" % vari1) # 輸出

fun(6, 9)

最大公約數為:3

最小公倍數為:18

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

原文:

求最大公約數

最新用了三種演算法實現了求最大公約數的演算法,用的c 寫的,最大公約數也是我們生活中常見的問題 1 窮舉法 主要 如下 if a b for i 1 i a i 演算法分析 窮舉法先將a,b兩值比較大小並且互換,再進行與各種數的整除,如果這個數能同時被a,b整除,那麼這個數就為最大公約數,這種演算法...

求最大公約數

暴力列舉法很簡單,從較小整數的一班開始,試圖找到乙個合適的整數i,檢查這個整數i是否被a和b同時整除 暴力列舉法求最大公約數 param a param b return public static int getgreatestcommondivisor v1 int a,int b for in...

求最大公約數

1.輾轉相除法 a.具體思路 兩個正整數a和b a b 它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。比如10和25,25除以10商2餘5,那麼10和25的最大公約數,等同於10和5的最大公約數。有點類似動態規劃的思想,逐步減小問題規模,最後求到問題的解。int test1 int a,...