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 while
petlje 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 1
i ponavljanje se nastavlja sve dok testni izraz if
izraza 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.