В тази програма ще се научите да намирате GCD на две числа в Kotlin. Това се прави с помощта на цикли for и while с помощта на if else инструкции.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:
- Java, ако … друго Изявление
- Java за Loop
- Java докато и да … докато Loop
HCF или GCD от две цели числа е най-голямото цяло число, което може точно да раздели и двете числа (без остатък).
Пример 1: Намерете GCD на две числа, като използвате оператора 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); ) )
Изход
GCD от 81 и 153 е 9
Тук две числа, чийто GCD трябва да бъдат намерени, се съхраняват съответно в n1 и n2.
След това се изпълнява цикъл for, докато i е по-малко от n1 и n2. По този начин всички числа между 1 и най-малкото от двете числа се итерират, за да се намери GCD.
Ако и n1, и n2 се делят на i, gcd се задава на числото. Това продължава, докато намери най-големия брой (GCD), който разделя n1 и n2 без остатък.
Също така можем да разрешим този проблем, като използваме цикъл while, както следва:
Пример 2: Намерете GCD на две числа, като използвате цикъла 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); ) )
Изход
GCD = 9
Това е по-добър начин да намерите GCD. При този метод по-малкото цяло число се изважда от по-голямото цяло и резултатът се присвоява на променливата, съдържаща по-голямо цяло число. Този процес продължава, докато n1 и n2 са равни.
Горните две програми работят по предназначение само ако потребителят въведе положителни цели числа. Ето малка модификация на втория пример за намиране на GCD както за положителни, така и за отрицателни цели числа.
Пример 3: GCD както за положителни, така и за отрицателни числа
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); ) )
Изход
GCD = 9