以下為代碼(覺得函數(shù)名太長隨便改):
創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為泰和等服務(wù)建站,泰和等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為泰和企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
def great_com_div(numa, numb):
for i in range(int(min(numa, numb)),0,-1):#從小的那個(gè)往下遍歷
if numa%i == 0 and numb%i == 0:#如果都能整除
print("最大公約數(shù):"+str(i))#輸出
break#跳出循環(huán)
以下為運(yùn)行效果:
great_com_div(39,169)
最大公約數(shù):13
一、求最大公約數(shù)算法:
1. 整數(shù)A對整數(shù)B進(jìn)行取整, 余數(shù)用整數(shù)C來表示 舉例: C = A % B
2. 如果C等于0,則C就是整數(shù)A和整數(shù)B的最大公約數(shù)
3. 如果C不等于0, 將B賦值給A, 將C賦值給B ,然后進(jìn)行 1, 2 兩步,直到余數(shù)為0, 則可以得知最大公約數(shù)
二、根據(jù)算法,實(shí)現(xiàn)Python程序
程序輸出結(jié)果:
更多學(xué)習(xí)課程以及資料 加Q群 313074041 領(lǐng)取
提到最大公約數(shù),那么就不得不說什么是公約數(shù),它是一個(gè)能被若干個(gè)整數(shù)同時(shí)均整除的整數(shù)。如果一個(gè)整數(shù)同時(shí)是幾個(gè)整數(shù)的約數(shù),稱這個(gè)整數(shù)為它們的“公約數(shù)”;公約數(shù)中最大的稱為最大公約數(shù)。對任意的若干個(gè)正整數(shù),1總是它們的公因數(shù)。
舉個(gè)例子:30和40的公約數(shù)有:1,2,5,10,那么10是這幾個(gè)里面最大的,就是30和40的最大公約數(shù)。
python求最大公約數(shù)
1.python求最大公約數(shù)設(shè)計(jì)思路
給定兩個(gè)數(shù),從1開始嘗試,步長為1逐漸遞增,為了優(yōu)化算法,只需要循環(huán)到兩個(gè)數(shù)中最小的那個(gè)數(shù)就可以。所以,第一步就是計(jì)算出兩個(gè)數(shù)中最小的數(shù),然后利用for循環(huán)從1到最小的那個(gè)數(shù)進(jìn)行枚舉,如果該數(shù)能夠同時(shí)被兩個(gè)數(shù)整除,則記錄下來,直到循環(huán)結(jié)束,最后,最大的這個(gè)就是最大公約數(shù)。
特別注意:這里會用到range函數(shù),range(0,5)的結(jié)果為0,1,2,3,4注意是沒有5的,因此在本例中循環(huán)時(shí)應(yīng)該是從1到最小的那個(gè)數(shù)+1才對。
2.最大公約數(shù)的python實(shí)現(xiàn)
打開百度APP,查看更多高清圖片
說明:在上面的代碼中,我們會用到自定義函數(shù)的定義方法:def ,兩個(gè)數(shù)的最小數(shù)的判斷方法,for循環(huán)和枚舉取值,整除取余,輸入輸出等內(nèi)置函數(shù)。