В этой программе вы научитесь находить НОД двух чисел в Котлине. Это делается с помощью циклов for и while с помощью операторов if else.
Чтобы понять этот пример, вы должны знать следующие темы программирования Java:
- Заявление Java if… else
- Java для цикла
- Java while и do … while Loop
HCF или GCD двух целых чисел - это наибольшее целое число, которое может точно разделить оба числа (без остатка).
Пример 1. Найдите НОД двух чисел с помощью цикла for и оператора if
public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = 153, gcd = 1; for(int i = 1; i <= n1 && i <= n2; ++i) ( // Checks if i is factor of both integers if(n1 % i==0 && n2 % i==0) gcd = i; ) System.out.printf("G.C.D of %d and %d is %d", n1, n2, gcd); ) )
Вывод
НОД 81 и 153 равно 9
Здесь два числа, НОД которых необходимо найти, хранятся в n1 и n2 соответственно.
Затем цикл for выполняется до тех пор, пока i не станет меньше, чем n1 и n2. Таким образом, все числа от 1 до наименьшего из двух чисел повторяются для нахождения НОД.
Если и n1, и n2 делятся на i, gcd устанавливается равным числу. Это продолжается до тех пор, пока не будет найдено наибольшее число (НОД), которое делит как n1, так и n2 без остатка.
Мы также можем решить эту проблему с помощью цикла while следующим образом:
Пример 2: Найдите НОД двух чисел с помощью цикла while и оператора if else
public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = 153; while(n1 != n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) System.out.println("G.C.D = " + n1); ) )
Вывод
НОД = 9
Это лучший способ найти GCD. В этом методе меньшее целое число вычитается из большего целого числа, а результат присваивается переменной, содержащей большее целое число. Этот процесс продолжается до тех пор, пока n1 и n2 не станут равными.
Две указанные выше программы работают по назначению, только если пользователь вводит положительные целые числа. Вот небольшая модификация второго примера, чтобы найти НОД как для положительных, так и для отрицательных целых чисел.
Пример 3: НОД для положительных и отрицательных чисел
public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = -153; // Always set to positive n1 = ( n1> 0) ? n1 : -n1; n2 = ( n2> 0) ? n2 : -n2; while(n1 != n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) System.out.println("G.C.D = " + n1); ) )
Вывод
НОД = 9