C Programm kahe numbri GCD leidmiseks

Näited kahe täisarvu (nii positiivsete kui ka negatiivsete täisarvude) GCD arvutamise erinevatest viisidest tsüklite ja otsustuslausete abil.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest C-programmeerimise teemadest:

  • C programmeerimisoperaatorid
  • C silmuse jaoks
  • C kui … muidu avaldus
  • C ajal ja tehke … Loopi ajal

Kahe täisarvu HCF või GCD on suurim täisarv, mis võib mõlemad arvud täpselt jagada (ilma jäägita).

C-programmeerimisel on suurima ühise jagaja leidmiseks palju võimalusi.

Näide # 1: GCD kasutamine silmuseks ja if lause

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

Selles programmis on kaks kasutaja sisestatud täisarvu salvestatud muutujatesse forn1 ja n2. Seejärel itereeritakse silmus, kuni i on väiksem kui n1 ja n2.

Igas iteratsioonis, kui nii n1 kui ka n2 on täpselt jagatavad i-ga, määratakse i väärtus gcd-le.

Kui fortsükkel on lõpule viidud, salvestatakse muutuja gcd alla kahe numbri suurim jagaja.

Näide # 2: GCD while loopi ja kui… muu avalduse kasutamine

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

Väljund

 Sisestage kaks positiivset täisarvu: 81 153 GCD = 9

See on parem viis GCD leidmiseks. Selle meetodi korral lahutatakse väiksem täisarv suuremast täisarvust ja tulemus määratakse muutujat, mis hoiab suuremat täisarvu. Seda protsessi jätkatakse seni, kuni n1 ja n2 on võrdsed.

Kaks ülaltoodud programmi toimivad ettenähtud viisil ainult siis, kui kasutaja sisestab positiivsed täisarvud. Siin on teise näite väike muudatus, et leida GCD nii positiivsete kui ka negatiivsete täisarvude jaoks.

Näide # 3: GCD nii positiivsete kui ka negatiivsete arvude jaoks

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

Väljund

 Sisestage kaks täisarvu: 81–153 GCD = 9

GCD leidmiseks võite kasutada ka rekursiooni.

Huvitavad Artiklid...