У цій програмі ви навчитесь знаходити GCD двох чисел у Котліні. Це робиться за допомогою циклу 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 з двох чисел.
Існує краща альтернатива пошуку ГЦД у Котліні наступним чином:
Приклад 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