日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python用递归方式实现最大公约数_Python程序查找最大公因数(HCF)或最大公约数(GCD)...

發(fā)布時間:2023/12/14 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python用递归方式实现最大公约数_Python程序查找最大公因数(HCF)或最大公约数(GCD)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python程序查找最大公因數(shù)(HCF)或最大公約數(shù)(GCD)

在此示例中,您將學(xué)習(xí)使用兩種不同的方法查找兩個數(shù)字的GCD:函數(shù)和循環(huán)以及歐幾里得算法

要理解此示例,您應(yīng)該了解以下Python編程主題:

兩個數(shù)的最大公因數(shù)(H.C.F)或最大公約數(shù)(G.C.D)是能完美地將兩個給定數(shù)相除的最大正整數(shù)。例如,H.C.F(12, 14)等于2。

源代碼:使用循環(huán)

示例# Python程序查找兩個數(shù)字的H.C.F

# 定義一個函數(shù)

def compute_hcf(x, y):

# 選擇較小的數(shù)字

if x > y:

smaller = y

else:

smaller = x

for i in range(1, smaller+1):

if((x % i == 0) and (y % i == 0)):

hcf = i

return hcf

num1 = 54

num2 = 24

print("H.C.F. 是", compute_hcf(num1, num2))

輸出結(jié)果H.C.F. 是 6

這里,存儲在變量num1和num2中的兩個整數(shù)被傳遞給compute hcf()函數(shù)。該函數(shù)計算H.C.F.這兩個數(shù)字并返回它。

在這個函數(shù)中,我們首先確定兩個數(shù)字中較小的那個F只能小于或等于最小的數(shù)。然后我們使用一個for循環(huán)從1到那個數(shù)字。

在每次迭代中,我們檢查我們的數(shù)字是否完美地將兩個輸入數(shù)字相除。如果是這樣,我們將這個數(shù)字存儲為H.C.F.,在循環(huán)結(jié)束時,我們得到的最大的數(shù)字完美地將兩個數(shù)字相除。

上述方法易于理解和實施,但是效率不高。查找HCF的一種更有效的方法是歐幾里得算法。

歐幾里得算法

該算法基于以下事實:兩個數(shù)字的HCF也將它們的差除。

在此算法中,我們將較大者除以較小者,然后取余數(shù)。現(xiàn)在,將較小者除以該余數(shù)。重復(fù)直到剩余為0。

例如,如果我們想求54和24的hcf,我們用54除以24。余數(shù)是6。24除以6,余數(shù)是0。因此,6是必需的hcf

源代碼:使用歐幾里得算法

示例# 函數(shù)查找HCF的使用歐幾里德算法

def compute_hcf(x, y):

while(y):

x, y = y, x % y

return x

hcf = compute_hcf(300, 400)

print("The HCF is", hcf)

在這里我們循環(huán)直到y(tǒng)變?yōu)榱?。該語句x, y = y, x % y在Python中交換值。單擊此處以了解有關(guān)在Python中交換變量的更多信息。

在每次迭代中,我們同時將y的值放在x中,其余的(x % y)放在y中。當(dāng)y變?yōu)?時,我們得到x的hcf。

總結(jié)

以上是生活随笔為你收集整理的python用递归方式实现最大公约数_Python程序查找最大公因数(HCF)或最大公约数(GCD)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。