Програма Kotlin за намиране на GCD от две числа

В тази програма ще се научите да намирате GCD на две числа в Kotlin. Това се прави чрез използване на цикъл while с помощта на if else оператор.

HCF или GCD от две цели числа е най-голямото цяло число, което може точно да раздели и двете числа (без остатък).

Пример 1: Намерете GCD на две числа, като използвате цикъл while

 fun main(args: Array) ( val n1 = 81 val n2 = 153 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 ) println("G.C.D of $n1 and $n2 is $gcd") )

Когато стартирате програмата, изходът ще бъде:

 GCD от 81 и 153 е 9

Тук две числа, чийто GCD трябва да бъдат намерени, се съхраняват съответно в n1 и n2.

След това се изпълнява цикъл while, докато i е по-малко от n1 и n2. По този начин всички числа между 1 и най-малкото от двете числа се итерират, за да се намери GCD.

Ако и n1, и n2 се делят на i, gcd се задава на числото. Това продължава, докато намери най-големия брой (GCD), който разделя n1 и n2 без остатък.

За разлика от Java, вие не можете да използвате цикъл for с условия за този проблем. Ето еквивалентния Java код: Java програма за намиране на GCD от две числа.

Има по-добра алтернатива за намиране на GCD в Kotlin, както следва:

Пример 2: Намерете GCD на две числа (по-добра алтернатива)

 fun main(args: Array) ( var n1 = 81 var n2 = 153 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )

Когато стартирате програмата, изходът ще бъде:

 GCD = 9

Това е по-добър начин да намерите GCD. При този метод по-малкото цяло число се изважда от по-голямото цяло и резултатът се присвоява на променливата, съдържаща по-голямо цяло число. Този процес продължава, докато n1 и n2 са равни.

Горните две програми работят по предназначение само ако потребителят въведе положителни цели числа. Ето малка модификация на втория пример за намиране на GCD както за положителни, така и за отрицателни цели числа.

Пример 3: GCD както за положителни, така и за отрицателни числа

 fun main(args: Array) ( var n1 = 81 var n2 = -153 // Always set to positive n1 = if (n1> 0) n1 else -n1 n2 = if (n2> 0) n2 else -n2 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )

Когато стартирате програмата, изходът ще бъде:

 GCD = 9

Интересни статии...