Python programma, lai atrastu HCF vai GCD

Šajā piemērā jūs iemācīsities atrast divu skaitļu GCD, izmantojot divas dažādas metodes: funkciju un cilpas un, Eiklida algoritmu

Lai saprastu šo piemēru, jums jābūt zināšanām par šādām Python programmēšanas tēmām:

  • Python funkcijas
  • Python rekursija
  • Python funkciju argumenti

Divu skaitļu augstākais kopīgais faktors (HCF) vai lielākais kopējais dalītājs (GCD) ir lielākais pozitīvais skaitlis, kas lieliski sadala abus dotos skaitļus. Piemēram, 12 un 14 HCF ir 2.

Pirmkods: Izmantojot cilpas

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

Rezultāts

 HCF ir 6 

Šeit compute_hcf()funkcijai tiek nodoti divi skaitļi, kas saglabāti mainīgajos skaitļos num1 un num2 . Funkcija aprēķina HCF šos divus skaitļus un atdod to.

Funkcijā vispirms mēs nosakām mazāko no diviem skaitļiem, jo ​​HCF var būt mazāks vai vienāds ar mazāko skaitli. Pēc tam mēs izmantojam forcilpu, lai pārietu no 1 uz šo skaitli.

Katrā atkārtojumā mēs pārbaudām, vai mūsu skaitlis lieliski sadala abus ievadītos skaitļus. Ja tā, mēs numuru glabājam kā HCF. Pabeidzot ciklu, mēs iegūstam lielāko skaitli, kas lieliski sadala abus skaitļus.

Iepriekš minēto metodi ir viegli saprast un īstenot, bet tā nav efektīva. Daudz efektīvāka metode HCF atrašanai ir Eiklida algoritms.

Eiklida algoritms

Šis algoritms ir balstīts uz faktu, ka divu skaitļu HCF sadala arī to atšķirību.

Šajā algoritmā mēs dalām lielāko ar mazāku un ņemam atlikušo daļu. Tagad daliet mazāko ar šo atlikumu. Atkārtojiet, līdz atlikusī vērtība ir 0.

Piemēram, ja mēs vēlamies atrast HCF ar 54 un 24, mēs dalām 54 ar 24. Atlikums ir 6. Tagad mēs dalām 24 ar 6 un atlikums ir 0. Tādējādi 6 ir nepieciešamais HCF

Avota kods: izmantojot Eiklida algoritmu

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

Šeit mēs ciklējam, līdz y kļūst nulle. Izraksts x, y = y, x % yveic vērtību maiņu Python. Noklikšķiniet šeit, lai uzzinātu vairāk par mainīgo mainīšanu Python.

Katrā atkārtojumā y vērtību vienlaikus ievietojam x, bet pārējo (x % y)- y. Kad y kļūst nulle, mums HCF ir x.

Interesanti raksti...