Программа Kotlin для поиска НОД двух чисел

В этой программе вы научитесь находить НОД двух чисел в Котлине. Это делается с помощью цикла while с помощью оператора if else.

HCF или GCD двух целых чисел - это наибольшее целое число, которое может точно разделить оба числа (без остатка).

Пример 1. Найдите НОД двух чисел с помощью цикла 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") )

Когда вы запустите программу, вывод будет:

 НОД 81 и 153 равно 9

Здесь два числа, НОД которых необходимо найти, хранятся в n1 и n2 соответственно.

Затем выполняется цикл while, пока i не станет меньше, чем n1 и n2. Таким образом, все числа от 1 до наименьшего из двух чисел повторяются для нахождения НОД.

Если и n1, и n2 делятся на i, gcd устанавливается равным числу. Это продолжается до тех пор, пока не будет найдено наибольшее число (НОД), которое делит как n1, так и n2 без остатка.

В отличие от Java, вы не можете использовать цикл for с условиями для этой проблемы. Вот эквивалентный Java-код: Java-программа для поиска GCD двух чисел.

Есть лучшая альтернатива для поиска GCD в Котлине:

Пример 2: найти НОД двух чисел (лучшая альтернатива)

 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") )

Когда вы запустите программу, вывод будет:

 НОД = 9

Это лучший способ найти GCD. В этом методе меньшее целое число вычитается из большего целого числа, а результат присваивается переменной, содержащей большее целое число. Этот процесс продолжается до тех пор, пока n1 и n2 не станут равными.

Две указанные выше программы работают по назначению, только если пользователь вводит положительные целые числа. Вот небольшая модификация второго примера, чтобы найти НОД как для положительных, так и для отрицательных целых чисел.

Пример 3: НОД для положительных и отрицательных чисел

 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") )

Когда вы запустите программу, вывод будет:

 НОД = 9

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