У овом програму ћете научити да пронађете ГЦД два броја у Котлину. То се постиже употребом фор и вхиле петљи уз помоћ иф елсе израза.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања Јава:
- Изјава за Јава ако … друго
- Јава за петљу
- Јава вхиле и уради … вхиле Лооп
ХЦФ или ГЦД од две целине је највећи цео број који може тачно поделити оба броја (без остатка).
Пример 1: Пронађите ГЦД два броја помоћу израза фор лооп и иф
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
Овде су два броја чији се ГЦД налази налазе у н1, односно н2.
Затим се фор петља извршава док и није мањи од н1 и н2. На овај начин се сви бројеви између 1 и најмањег од два броја понављају да би се пронашао ГЦД.
Ако су и н1 и н2 дељиви са и, гцд се поставља на број. То траје све док не пронађе највећи број (ГЦД) који дели н1 и н2 без остатка.
Овај проблем такође можемо решити помоћу вхиле петље на следећи начин:
Пример 2: Пронађите ГЦД два броја помоћу вхиле петље и иф елсе израза
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
Ово је бољи начин за проналажење ГЦД-а. У овој методи мањи цели број се одузима од већег целог броја, а резултат се додељује променљивој која садржи већи цели број. Овај процес се наставља све док н1 и н2 не буду једнаки.
Горе наведена два програма раде како је предвиђено само ако корисник унесе позитивне целе бројеве. Ево мале модификације другог примера да бисмо пронашли ГЦД и за позитивне и за негативне целобројне вредности.
Пример 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