C Program pentru a găsi GCD de două numere

Exemple despre diferite moduri de a calcula GCD a două numere întregi (atât pentru numere întregi pozitive, cât și negative) folosind bucle și declarații de luare a deciziilor.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare C:

  • C Operatori de programare
  • C pentru Loop
  • C dacă … altfel Declarație
  • C while și do … while Buclă

HCF sau GCD a două numere întregi este cel mai mare număr întreg care poate împărți exact ambele numere (fără rest).

Există multe modalități de a găsi cel mai mare divizor comun în programarea C.

Exemplul # 1: GCD folosind instrucțiunea pentru buclă și 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; ) 

În acest program, două numere întregi introduse de utilizator sunt stocate în variabilele n1 și n2.Apoi, forbucla este iterată până când i este mai mică decât n1 și n2.

În fiecare iterație, dacă atât n1 cât și n2 sunt exact divizibile cu i, valoarea lui i este atribuită mcd.

Când forbucla este finalizată, cel mai mare divizor comun al a două numere este stocat în variabilă gcd.

Exemplul # 2: GCD folosind bucla while și if … else Declarație

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

Ieșire

 Introduceți două numere întregi pozitive: 81 153 GCD = 9

Acesta este un mod mai bun de a găsi GCD. În această metodă, un număr întreg mai mic este scăzut din numărul întreg mai mare, iar rezultatul este atribuit variabilei care deține un număr întreg mai mare. Acest proces este continuat până când n1 și n2 sunt egale.

Cele două programe de mai sus funcționează conform destinației numai dacă utilizatorul introduce numere întregi pozitive. Iată o mică modificare a celui de-al doilea exemplu pentru a găsi GCD atât pentru numere întregi pozitive, cât și negative.

Exemplul # 3: GCD atât pentru numerele pozitive, cât și pentru cele negative

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

Ieșire

 Introduceți două numere întregi: 81 -153 GCD = 9

De asemenea, puteți utiliza recursivitatea pentru a găsi GCD.

Articole interesante...