C Program za pronalaženje GCD-a od dva broja

Primjeri različitih načina izračuna GCD-a dviju cijelih brojeva (i za pozitivne i za negativne cijele brojeve) pomoću petlji i izjava za donošenje odluka.

Da biste razumjeli ovaj primjer, trebali biste imati znanje sljedećih C programskih tema:

  • C Operateri programiranja
  • C za Loop
  • C if … else Izjava
  • C dok i ne … dok Loop

HCF ili GCD dviju cijelih brojeva najveći je cijeli broj koji može točno podijeliti oba broja (bez ostatka).

Postoji mnogo načina kako pronaći najveći zajednički djelitelj u programiranju C.

Primjer # 1: GCD koji koristi for petlju i if izjavu

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

U ovom se programu dvije cjeline koje je korisnik unio pohranjuju u varijablu forn1 i n2. Zatim se petlja ponavlja dok i nije manji od n1 i n2.

U svakoj iteraciji, ako su i n1 i n2 točno djeljivi s i, vrijednost i dodjeljuje se gcd.

Kada je forpetlja završena, najveći zajednički djelitelj dva broja pohranjuje se u varijablu gcd.

Primjer # 2: GCD Korištenje while petlje i if … else izjave

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

Izlaz

 Unesite dva pozitivna cijela broja: 81 153 GCD = 9

Ovo je bolji način za pronalaženje GCD-a. U ovoj se metodi manji cijeli broj oduzima od većeg, a rezultat se dodjeljuje varijabli koja sadrži veći cijeli broj. Taj se postupak nastavlja dok n1 i n2 ne budu jednaki.

Gornja dva programa rade kako je predviđeno samo ako korisnik unese pozitivne cijele brojeve. Evo male preinake drugog primjera kako bismo pronašli GCD i za pozitivne i za negativne cijele brojeve.

Primjer # 3: GCD i za pozitivne i za negativne brojeve

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

Izlaz

 Unesite dvije cijele brojke: 81 -153 GCD = 9

Također možete koristiti rekurziju da biste pronašli GCD.

Zanimljivi članci...