C Programma om GCD van twee nummers te vinden

Voorbeelden van verschillende manieren om GCD van twee gehele getallen te berekenen (voor zowel positieve als negatieve gehele getallen) met behulp van loops en besluitvormingsverklaringen.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C-programmeeronderwerpen:

  • C Programmeringsoperatoren
  • C voor Loop
  • C if… else Statement
  • C while en do… while Loop

De HCF of GCD van twee gehele getallen is het grootste gehele getal dat beide getallen exact kan delen (zonder een rest).

Er zijn veel manieren om de grootste gemene deler in C-programmering te vinden.

Voorbeeld 1: GCD gebruikt for-lus en if-instructie

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

In dit programma worden twee door de gebruiker ingevoerde gehele getallen opgeslagen in variabele forn1 en n2. Vervolgens wordt de lus herhaald totdat i kleiner is dan n1 en n2.

Als in elke iteratie zowel n1 als n2 exact deelbaar zijn door i, wordt de waarde van i toegewezen aan gcd.

Wanneer de forlus is voltooid, wordt de grootste gemene deler van twee getallen opgeslagen in variabele gcd.

Voorbeeld 2: GCD met while-lus en if… else-instructie

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

Uitvoer

 Voer twee positieve gehele getallen in: 81153 GCD = 9

Dit is een betere manier om de GCD te vinden. Bij deze methode wordt een kleiner geheel getal afgetrokken van het grotere gehele getal en wordt het resultaat toegewezen aan de variabele die een groter geheel getal bevat. Dit proces wordt voortgezet totdat n1 en n2 gelijk zijn.

De bovenstaande twee programma's werken alleen zoals bedoeld als de gebruiker positieve gehele getallen invoert. Hier is een kleine wijziging van het tweede voorbeeld om de GCD te vinden voor zowel positieve als negatieve gehele getallen.

Voorbeeld 3: GCD voor zowel positieve als negatieve getallen

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

Uitvoer

 Voer twee gehele getallen in: 81-153 GCD = 9

U kunt ook recursie gebruiken om de GCD te vinden.

Interessante artikelen...