Python-ohjelma HCF: n tai GCD: n löytämiseksi

Tässä esimerkissä opit etsimään kahden numeron GCD: n kahdella eri menetelmällä: funktio ja silmukat ja, euklidinen algoritmi

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Python-ohjelmointiaiheista:

  • Python-toiminnot
  • Python-rekursio
  • Python-funktion argumentit

Kahden numeron suurin yhteinen kerroin (HCF) tai suurin yhteinen jakaja (GCD) on suurin positiivinen kokonaisluku, joka jakaa täydellisesti nämä kaksi lukua. Esimerkiksi 12 ja 14 HCF on 2.

Lähdekoodi: Silmukoiden käyttö

 # 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)) 

Tuotos

 HCF on 6 

Tässä muuttujiin num1 ja num2 tallennetut kokonaisluvut välitetään compute_hcf()funktiolle. Funktio laskee nämä kaksi lukua ja palauttaa sen.

Funktiossa määritetään ensin pienempi kahdesta luvusta, koska HCF voi olla vain pienempi tai yhtä suuri kuin pienin luku. Sitten käytämme forsilmukkaa siirtyäksesi 1: stä tähän numeroon.

Jokaisessa iteraatiossa tarkistamme, jakaako numeromme täydellisesti molemmat syötetyt numerot. Jos näin on, tallennamme numeron HCF: nä. Kun silmukka on valmis, päädymme suurimpaan lukuun, joka jakaa täydellisesti molemmat numerot.

Yllä oleva menetelmä on helppo ymmärtää ja toteuttaa, mutta ei tehokas. Paljon tehokkaampi menetelmä HCF: n löytämiseksi on euklidinen algoritmi.

Euklidinen algoritmi

Tämä algoritmi perustuu siihen, että kahden luvun HCF jakaa myös niiden eron.

Tässä algoritmissa jaamme suuremman pienemmällä ja otamme loput. Jaa nyt pienempi tällä jäljellä olevalla. Toista, kunnes loppuosa on 0.

Esimerkiksi, jos haluamme löytää HCF: n 54 ja 24, jaamme 54 luvulla 24. Loput ovat 6. Nyt jaamme 24 6: lla ja loput on 0. Siksi 6 on vaadittu HCF

Lähdekoodi: Euklidisen algoritmin käyttö

 # 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)

Tässä silmukoidaan, kunnes y on nolla. Lause x, y = y, x % yvaihtaa arvoja Pythonissa. Napsauttamalla tätä saat lisätietoja muuttujien vaihtamisesta Pythonissa.

Kussakin iteraatiossa sijoitamme y: n arvon x: ään ja loput (x % y)y: hen samanaikaisesti. Kun y: stä tulee nolla, HCF on x: ssä.

Mielenkiintoisia artikkeleita...