python實現求最大公約數與最小公倍數

2022-06-07 14:24:11 字數 1295 閱讀 8053

最大公約數:指兩個或多個整數公有約數中最大的乙個

最小公倍數:兩個或多個整數公有的倍數叫做它們的公倍數,其中除0以外最小的乙個公倍數就叫做這幾個整數的最小公倍數

二者關係:兩個數之積=最小公倍數*最大公約數

方法1:輾轉相除法

a=int(input('

please enter 1st num:'))

b=int(input('

please enter 2nd num:'))

s=a*b

while a%b!=0:

a,b=b,(a%b)

else

:

print(b,'

is the maximum common divisor')

print(s//b,'

is the least common multiple')

#執行結果

please enter 1st num:10please enter 2nd num:15

5 is

the maximum common divisor

30 is the least common multiple

方法2:更相減損法

a=int(input('

please enter 1st num:'))

b=int(input('

please enter 2nd num:'))

s=a*b

while a!=b:

if a>b:

a-=b

elif ab-=a

else

:

print(a,'

is the maximum common divisor')

print(s//a,'

is the least common multiple')

#執行結果

please enter 1st num:40please enter 2nd num:60

20 is

the maximum common divisor

120 is the least common multiple

(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,...