Kotlina programma divu skaitļu LCM atrašanai

Šajā programmā jūs iemācīsities atrast divu skaitļu cm3, izmantojot GCD un neizmantojot GCD. Tas tiek darīts, izmantojot Kotlin loku.

Divu veselu skaitļu LCM ir mazākais pozitīvais skaitlis, kas ir pilnīgi sadalāms ar abiem skaitļiem (bez atlikuma).

1. piemērs: Kotlin programma, lai aprēķinātu LCM, izmantojot paziņojumu while Loop un if

 fun main(args: Array) ( val n1 = 72 val n2 = 120 var lcm: Int // maximum number between n1 and n2 is stored in lcm lcm = if (n1> n2) n1 else n2 // Always true while (true) ( if (lcm % n1 == 0 && lcm % n2 == 0) ( println("The LCM of $n1 and $n2 is $lcm.") break ) ++lcm ) )

Palaidot programmu, izeja būs:

 LCM 72 un 120 ir 360.

Šajā programmā divi skaitļi, kuru LCM ir atrodams, tiek attiecīgi saglabāti mainīgajos n1 un n2.

Pēc tam mēs sākotnēji iestatījām lcm uz lielāko no diviem skaitļiem. Tas ir tāpēc, ka LCM nevar būt mazāks par lielāko skaitu.

Līdzīgi kā Java, bezgalīgā, kamēr cilpa ( while(true)) iekšpusē mēs pārbaudām, vai lcm lieliski sadala gan n1, gan n2.

Ja tā notiek, mēs esam atraduši LCM. Mēs izdrukājam LCM un izejam no while cikla, izmantojot breakpriekšrakstu.

Citādi mēs palielinām lcm par 1 un atkārtoti pārbaudām dalāmības stāvokli.

Šeit ir ekvivalents Java kods: Java programma divu ciparu LCM atrašanai.

Mēs varam arī izmantot GCD, lai atrastu divu skaitļu LCM, izmantojot šādu formulu:

 LCM = (n1 * n2) / GCD

Ja nezināt, kā Java aprēķināt GCD, pārbaudiet Kotlin programmu, lai atrastu divu skaitļu GCD.

2. piemērs: Kotlina programma LCM aprēķināšanai, izmantojot GCD

 fun main(args: Array) ( val n1 = 72 val n2 = 120 var gcd = 1 var i = 1 while (i <= n1 && i <= n2) ( // Checks if i is factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i ++i ) val lcm = n1 * n2 / gcd println("The LCM of $n1 and $n2 is $lcm.") )

Šīs programmas rezultāts ir tāds pats kā 1. piemērā.

Šeit, kamēr cilpa, mēs aprēķinām divu skaitļu - n1 un n2 - GCD. Pēc aprēķina mēs izmantojam iepriekšminēto formulu, lai aprēķinātu LCM.

Interesanti raksti...