Selles näites õpite leidma kahe numbri GCD, kasutades kahte erinevat meetodit: funktsioon ja tsüklid ja, Eukleidese algoritm
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Pythoni programmeerimise teemadest:
- Pythoni funktsioonid
- Pythoni rekursioon
- Pythoni funktsiooni argumendid
Kahe numbri suurim ühine tegur (HCF) või suurim ühine jagaja (GCD) on suurim positiivne täisarv, mis jagab need kaks antud numbrit täiuslikult. Näiteks HCF 12 ja 14 on 2.
Lähtekood: Silmuste kasutamine
# Python program to find H.C.F of two numbers # define a function def compute_hcf(x, y): # choose the smaller number 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("The H.C.F. is", compute_hcf(num1, num2))
Väljund
HCF on 6
Siin edastatakse compute_hcf()
funktsioonile kaks muutujatesse num1 ja num2 salvestatud täisarvu . Funktsioon arvutab HCF need kaks numbrit ja tagastab selle.
Funktsioonis määrame kõigepealt kahest numbrist väiksema, kuna HCF võib olla väiksem või väiksem või väiksem. Seejärel kasutame for
silmust, et liikuda 1-lt sellele numbrile.
Igas iteratsioonis kontrollime, kas meie arv jagab mõlemad sisendnumbrid ideaalselt. Kui jah, siis salvestame numbri HCF-ks. Tsükli lõpuleviimisel jõuame lõpuks suurima arvuni, mis jagab mõlemad numbrid ideaalselt.
Ülaltoodud meetodit on lihtne mõista ja rakendada, kuid see pole tõhus. Palju tõhusam meetod HCF leidmiseks on Eukleidese algoritm.
Eukleidese algoritm
See algoritm põhineb asjaolul, et kahe arvu HCF jagab ka nende erinevuse.
Selles algoritmis jagame suurema väiksematega ja võtame ülejäänu. Nüüd jagage väiksem selle ülejäänud osaga. Korrake, kuni ülejäänud on 0.
Näiteks kui tahame leida HCF-i 54 ja 24, jagame 54 24-ga. Ülejäänud on 6. Nüüd jagame 24 6-ga ja ülejäänud on 0. Seega on 6 vajalik HCF
Lähtekood: Eukleidese algoritmi kasutamine
# Function to find HCF the Using Euclidian algorithm def compute_hcf(x, y): while(y): x, y = y, x % y return x hcf = compute_hcf(300, 400) print("The HCF is", hcf)
Siin me loopime, kuni y saab nulli. Avaldus x, y = y, x % y
vahetab Pythonis väärtusi. Muutujate Pythonis vahetamise kohta lisateabe saamiseks klõpsake siin.
Igas iteratsioonis (x % y)
paigutame y väärtuse üheaegselt x-i ja ülejäänud y-sse. Kui y saab nulli, on meil HCF x-is.