python怎麼求最大公約數和最小公倍數
一、求最大公約數
用輾轉相除法求最大公約數的演算法如下:
兩個正整數a和b(a>b),它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。比如10和25,25除以10商2餘5,那麼10和25的最大公約數,等同於10和5的最大公約數。
具體**如下:
def gongyue(a, b):
"""歐幾里得演算法----輾轉相除法
:param a: 第乙個數
:param b: 第二個數
:return: 最大公約數
"""# 如果最終餘數為0 公約數就計算出來了
while(b!=0):
temp = a % b
a = b
b = temp
return a
二、求最小公倍數
求出a,b的最大公約數後,利用gongbei(a,b) = (a*b)/gongyue(a,b) 計算出兩個數的最小公倍數:
# 求兩個數的最小公倍數
def gongbei(a,b):
retu a * b / gongyue(a, b)
知識點補充:
1. 求最小公倍數的演算法:
最小公倍數 = 兩個整數的乘積 / 最大公約數
所以我們首先要求出兩個整數的最大公約數, 程式設計客棧求兩個數的最大公約數思路如下:
2. 求最大公約數演算法:
① 整數a對整數b進行取整, 餘數用整數c來表示 舉例: c = a % b
② 如果c等於0,則c就是整數a和整數b的最大公約數
③ www.cppcns.com如果c不等於0,www.cppcns.com 將b賦值給a, 將c賦值給b ,然後進行 1, 2 兩步,直到餘數為0, 則可以得知最大公約數
求最大公約數
最新用了三種演算法實現了求最大公約數的演算法,用的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,...