Šajā piemērā jūs iemācīsities aprēķināt LCM (zemākais kopējais vairākkārtējais) no diviem lietotāja ievadītajiem skaitļiem.
Lai saprastu šo piemēru, jums vajadzētu būt zināšanām par šādām C programmēšanas tēmām:
- C programmēšanas operatori
- C ja … cits paziņojums
- C kamēr un dari … kamēr Loop
Divu veselu skaitļu n1 un n2 LCM ir mazākais pozitīvais vesels skaitlis, kas ir pilnīgi dalāms gan ar n1, gan ar n2 (bez atlikuma). Piemēram, LCM 72 un 120 ir 360.
LCM, izmantojot un, ja
#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; )
Rezultāts
Ievadiet divus pozitīvos skaitļus: 72 120 LCM 72 un 120 ir 360.
Šajā programmā lietotāja ievadītie veseli skaitļi tiek glabāti attiecīgi mainīgajos n1 un n2.
Lielākais skaits starp n1 un n2 tiek saglabāts maks. Divu skaitļu LCM nevar būt mazāks par maks.
while
Cilpas testa izteiksme vienmēr ir patiesa.
Katrā atkārtojumā tiek pārbaudīts, vai max ir pilnīgi dalāms ar n1 un n2.
ja (min% n1 == 0 && max% n2 == 0) (…)
Ja šis testa nosacījums nav patiess, max tiek palielināts par 1
un iterācija turpinās, līdz if
apgalvojuma testa izteiksme ir patiesa.
Divu skaitļu LCM var atrast arī pēc formulas:
LCM = (num1 * num2) / GCD
Uzziniet, kā atrast divu skaitļu GCD C programmēšanā.
LCM aprēķins, izmantojot 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; )
Rezultāts
Ievadiet divus pozitīvos skaitļus: 72 120 Divu skaitļu 72 un 120 LCM ir 360.