C Program för att hitta GCD med två nummer

Exempel på olika sätt att beräkna GCD för två heltal (för både positiva och negativa heltal) med hjälp av loopar och beslutsuttalanden.

För att förstå detta exempel bör du ha kunskap om följande C-programmeringsämnen:

  • C Programmeringsoperatörer
  • C för loop
  • C if… else Uttalande
  • C medan och gör … medan Loop

HCF eller GCD för två heltal är det största heltalet som exakt kan dela båda siffrorna (utan en rest).

Det finns många sätt att hitta den största gemensamma delaren i C-programmering.

Exempel nr 1: GCD använder för loop och 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 detta program lagras två heltal som matats in av användaren i variablerna n1 och n2. Därefter upprepas forloop tills jag är mindre än n1 och n2.

I varje iteration, om både n1 och n2 är exakt delbara med i, tilldelas värdet på gcd.

När forslingan är klar lagras den största gemensamma delaren av två tal i variabel gcd.

Exempel # 2: GCD Användning under loop och om … annars uttalande

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

Produktion

 Ange två positiva heltal: 81 153 GCD = 9

Detta är ett bättre sätt att hitta GCD. I denna metod subtraheras mindre heltal från det större heltalet och resultatet tilldelas variabeln som innehåller större heltal. Denna process fortsätter tills n1 och n2 är lika.

Ovanstående två program fungerar bara som avsett om användaren anger positiva heltal. Här är en liten modifiering av det andra exemplet för att hitta GCD för både positiva och negativa heltal.

Exempel 3: GCD för både positiva och negativa siffror

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

Produktion

 Ange två heltal: 81-153 GCD = 9

Du kan också använda rekursion för att hitta GCD.

Intressanta artiklar...