C Program za pronalaženje LCM-a od dva broja

U ovom ćete primjeru naučiti izračunavati LCM (najniži zajednički višekratnik) dva broja koja je korisnik unio.

Da biste razumjeli ovaj primjer, trebali biste imati znanje sljedećih C programskih tema:

  • C Operateri programiranja
  • C if … else Izjava
  • C dok i ne … dok Loop

LCM dviju cijelih brojeva n1 i n2 najmanji je pozitivni cijeli broj koji je savršeno djeljiv s n1 i n2 (bez ostatka). Na primjer, LCM od 72 i 120 je 360.

LCM pomoću while i if

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

Izlaz

 Unesite dva pozitivna cijela broja: 72 120 LCM od 72 i 120 je 360. 

U ovom programu, cijeli brojevi koje je korisnik unio pohranjeni su u varijabli n1, odnosno n2.

Najveći broj među n1 i n2 pohranjen je u maks. LCM dva broja ne može biti manji od maks.

Testni izraz whilepetlje uvijek je istinit.

U svakoj se iteraciji provjerava je li max savršeno djeljiv s n1 i n2.

 ako (min% n1 == 0 && maks% n2 == 0) (…) 

Ako ovaj testni uvjet nije istinit, max se uvećava za 1i ponavljanje se nastavlja sve dok testni izraz ifizraza nije istinit.

LCM dva broja također se može naći pomoću formule:

 LCM = (num1 * num2) / GCD 

Naučite kako pronaći GCD dva broja u programiranju C.

LCM izračunavanje pomoću GCD-a

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

Izlaz

 Unesite dva pozitivna cijela broja: 72 120 LCM dvaju brojeva 72 i 120 je 360. 

Zanimljivi članci...