Program za iskanje GCD dveh številk

Primeri različnih načinov izračuna GCD dveh celih števil (za pozitivna in negativna cela števila) z uporabo zank in stavkov odločanja.

Če želite razumeti ta primer, morate poznati naslednje teme programiranja C:

  • C Operaterji programiranja
  • C za Loop
  • Izjava C, če … drugače
  • C medtem in pa … medtem ko Loop

HCF ali GCD dveh celih števil je največje celo število, ki lahko natančno deli obe številki (brez ostanka).

Obstaja veliko načinov, kako najti največji skupni delilec pri programiranju C.

Primer # 1: Uporaba izjave GCD za zanko in if

 #include int main() ( int n1, n2, i, gcd; printf("Enter two integers: "); scanf("%d %d", &n1, &n2); for(i=1; i <= n1 && i <= n2; ++i) ( // Checks if i is factor of both integers if(n1%i==0 && n2%i==0) gcd = i; ) printf("G.C.D of %d and %d is %d", n1, n2, gcd); return 0; ) 

V tem programu sta dve celi števili, ki jih vnese uporabnik, shranjeni v spremenljivki forn1 in n2. Nato se zanka ponavlja, dokler i ni manjša od n1 in n2.

Če sta v vsaki ponovitvi n1 in n2 natančno deljiva z i, je vrednost i dodeljena gcd.

Ko je forzanka končana, je največji skupni delilec dveh številk shranjen v spremenljivki gcd.

2. primer: GCD Uporaba zanke while in if … else Izjava

 #include int main() ( int n1, n2; printf("Enter two positive integers: "); scanf("%d %d",&n1,&n2); while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Izhod

 Vnesite dve pozitivni števili: 81 153 GCD = 9

To je boljši način za iskanje GCD. Pri tej metodi se od večjega števila odšteje manjše celo število, rezultat pa se dodeli spremenljivki, ki vsebuje večje celo število. Ta postopek se nadaljuje, dokler n1 in n2 nista enaki.

Zgornja dva programa delujeta, kot je predvideno, le če uporabnik vnese pozitivna cela števila. Tu je nekaj sprememb drugega primera, da bi našli GCD za pozitivna in negativna cela števila.

3. primer: GCD za pozitivna in negativna števila

 #include int main() ( int n1, n2; printf("Enter two integers: "); scanf("%d %d",&n1,&n2); // if user enters negative number, sign of the number is changed to positive n1 = ( n1> 0) ? n1 : -n1; n2 = ( n2> 0) ? n2 : -n2; while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Izhod

 Vnesite dve celi števili: 81 -153 GCD = 9

Za iskanje GCD lahko uporabite tudi rekurzijo.

Zanimive Članki...