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

Tässä esimerkissä opit laskemaan käyttäjän syöttämän kahden numeron LCM (pienin yhteinen moninkertainen).

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

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

Kahden kokonaisluvun n1 ja n2 LCM on pienin positiivinen kokonaisluku, joka on täysin jaettavissa sekä n1: llä että n2: lla (ilman jäännöstä). Esimerkiksi 72 ja 120 LCM on 360.

LCM käyttää aikaa ja jos

 #include int main() ( int n1, n2, max; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); // maximum number between n1 and n2 is stored in min max = (n1> n2) ? n1 : n2; while (1) ( if (max % n1 == 0 && max % n2 == 0) ( printf("The LCM of %d and %d is %d.", n1, n2, max); break; ) ++max; ) return 0; ) 

Tuotos

 Syötä kaksi positiivista kokonaislukua: 72120: n 72 ja 120 LCM on 360. 

Tässä ohjelmassa käyttäjän syöttämät kokonaisluvut tallennetaan muuttujiin n1 ja n2 vastaavasti.

Suurin luku n1: stä ja n2: sta tallennetaan max. Kahden numeron LCM ei voi olla pienempi kuin max.

Testi ilmentyminen whilesilmukka on aina totta.

Jokaisessa iteraatiossa tarkistetaan, onko max täysin jaollinen n1: llä ja n2: lla.

 jos (min% n1 == 0 && max% n2 == 0) (…) 

Jos tämä testiehto ei ole totta, maksimi kasvaa 1ja iterointia jatketaan, kunnes lauseen iftestilauseke on tosi.

Kahden numeron LCM löytyy myös kaavalla:

 LCM = (numero1 * numero2) / GCD 

Opi löytämään kahden numeron GCD C-ohjelmoinnissa.

LCM-laskenta GCD: llä

 #include int main() ( int n1, n2, i, gcd, lcm; printf("Enter two positive integers: "); scanf("%d %d", &n1, &n2); for (i = 1; i <= n1 && i <= n2; ++i) ( // check if i is a factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i; ) lcm = (n1 * n2) / gcd; printf("The LCM of two numbers %d and %d is %d.", n1, n2, lcm); return 0; ) 

Tuotos

 Syötä kaksi positiivista kokonaislukua: 72120Lukujen 72 ja 120 LCM on 360. 

Mielenkiintoisia artikkeleita...