C Ohjelma kahden numeron GCD: n löytämiseksi

Esimerkkejä eri tavoista laskea kahden kokonaisluvun GCD (sekä positiivisille että negatiivisille kokonaisluvuille) silmukoiden ja päätöksentekolausekkeiden avulla.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C-ohjelmointiaiheista:

  • C Ohjelmoijat
  • C silmukalle
  • C jos… muuta lausunto
  • C kun ja tee … silmukan aikana

Kahden kokonaisluvun HCF tai GCD on suurin kokonaisluku, joka voi jakaa molemmat numerot tarkalleen (ilman loppuosaa).

On monia tapoja löytää suurin yhteinen jakaja C-ohjelmoinnissa.

Esimerkki # 1: GCD: n käyttö silmukalle ja if-lauseelle

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

Tässä ohjelmassa kaksi käyttäjän syöttämää kokonaislukua tallennetaan muuttujiin n1 ja n2, minkä jälkeen forsilmukka toistetaan, kunnes i on alle n1 ja n2.

Jos sekä n1 että n2 ovat tarkasti jaettavissa kullakin iteraatiolla i: llä, i: n arvo osoitetaan gcd: lle.

Kun forsilmukka on valmis, kahden numeron suurin yhteinen jakaja tallennetaan muuttujaan gcd.

Esimerkki # 2: GCD while loop- ja if… else -käytäntö

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

Tuotos

 Syötä kaksi positiivista kokonaislukua: 81153 GCD = 9

Tämä on parempi tapa löytää GCD. Tässä menetelmässä pienempi kokonaisluku vähennetään suuremmasta kokonaisluvusta ja tulos osoitetaan muuttujalle, jolla on suurempi kokonaisluku. Tätä prosessia jatketaan, kunnes n1 ja n2 ovat yhtä suuret.

Edellä mainitut kaksi ohjelmaa toimivat tarkoitetulla tavalla vain, jos käyttäjä syöttää positiivisia kokonaislukuja. Tässä on pieni muunnos toisesta esimerkistä GCD: n löytämiseksi sekä positiivisille että negatiivisille kokonaislukuille.

Esimerkki # 3: GCD sekä positiivisille että negatiivisille numeroille

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

Tuotos

 Syötä kaksi kokonaislukua: 81-153 GCD = 9

Voit käyttää rekursiota myös GCD: n löytämiseen.

Mielenkiintoisia artikkeleita...