Program C za iskanje LCM dveh številk

V tem primeru se boste naučili izračunati LCM (Najnižji skupni večkratnik) dveh številk, ki jih vnese uporabnik.

Če želite razumeti ta primer, morate poznati naslednje teme programiranja C:

  • C Operaterji programiranja
  • Izjava C, če … drugače
  • C medtem in pa … medtem ko Loop

LCM dveh celih števil n1 in n2 je najmanjše pozitivno celo število, ki je popolnoma deljivo z n1 in n2 (brez ostanka). Na primer, LCM 72 in 120 je 360.

LCM z uporabo while in 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; ) 

Izhod

 Vnesite dve pozitivni celi števili: 72 120 LCM 72 in 120 je 360. 

V tem programu so cela števila, ki jih vnese uporabnik, shranjena v spremenljivki n1 oziroma n2.

Največje število med n1 in n2 je shranjeno v maks. LCM dveh številk ne sme biti manjši od največ.

Testni izraz whilezanke je vedno resničen.

V vsaki ponovitvi se preveri, ali je max popolnoma deljiv z n1 in n2.

 če (min% n1 == 0 && max% n2 == 0) (…) 

Če ta preskusni pogoj ni resničen, se max poveča za 1in ponovitev se nadaljuje, dokler testni izraz ifstavka ni resničen.

LCM dveh številk lahko najdemo tudi po formuli:

 LCM = (num1 * num2) / GCD 

Naučite se najti GCD dveh števil pri programiranju na C.

Izračun LCM z uporabo GCD

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

Izhod

 Vnesite dve pozitivni celi števili: 72 120 LCM dveh števil 72 in 120 je 360. 

Zanimive Članki...