C Program for å finne GCD med to tall

Eksempler på forskjellige måter å beregne GCD på to heltall (for både positive og negative heltall) ved hjelp av sløyfer og beslutningsuttalelser.

For å forstå dette eksemplet, bør du ha kunnskap om følgende C-programmeringsemner:

  • C Programmeringsoperatører
  • C for Loop
  • C if… else Erklæring
  • C mens og gjør … mens Loop

HCF eller GCD av to heltall er det største heltallet som nøyaktig kan dele begge tallene (uten en rest).

Det er mange måter å finne den største felles divisoren i C-programmering.

Eksempel nr. 1: GCD bruker for loop og if Statement

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

I dette programmet lagres to heltall som er angitt av brukeren i variabelen forn1 og n2. Deretter gjentas sløyfen til jeg er mindre enn n1 og n2.

I hver iterasjon, hvis både n1 og n2 er nøyaktig delelig med i, tildeles verdien av i gcd.

Når forløkken er fullført, lagres den største fellesdeleren av to tall i variabel gcd.

Eksempel 2: GCD Bruk mens løkke og hvis … annet uttalelse

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

Produksjon

 Skriv inn to positive heltall: 81 153 GCD = 9

Dette er en bedre måte å finne GCD på. I denne metoden trekkes mindre heltall fra det større heltallet, og resultatet tilordnes variabelen som inneholder større heltall. Denne prosessen fortsetter til n1 og n2 er like.

Ovennevnte to programmer fungerer bare som ment hvis brukeren skriver inn positive heltall. Her er en liten modifikasjon av det andre eksemplet for å finne GCD for både positive og negative heltall.

Eksempel 3: GCD for både positive og negative tall

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

Produksjon

 Skriv inn to heltall: 81-153 GCD = 9

Du kan også bruke rekursjon for å finne GCD.

Interessante artikler...