En este programa, aprenderá a encontrar GCD de dos números en Kotlin. Esto se hace usando el bucle while con la ayuda de la instrucción if else.
El HCF o GCD de dos enteros es el entero más grande que puede dividir exactamente ambos números (sin un resto).
Ejemplo 1: Encuentre GCD de dos números usando el bucle 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") )
Cuando ejecute el programa, la salida será:
MCD de 81 y 153 es 9
Aquí, dos números cuyo GCD se va a encontrar se almacenan en n1 y n2 respectivamente.
Luego, se ejecuta un ciclo while hasta que i es menor que n1 y n2. De esta manera, todos los números entre 1 y el más pequeño de los dos se repiten para encontrar el MCD.
Si tanto n1 como n2 son divisibles por i, gcd se establece en el número. Esto continúa hasta que encuentra el número más grande (GCD) que divide a n1 y n2 sin resto.
A diferencia de Java, no puede utilizar un bucle for con condiciones para este problema. Aquí está el código Java equivalente: Programa Java para encontrar GCD de dos números.
Existe una mejor alternativa para encontrar GCD en Kotlin de la siguiente manera:
Ejemplo 2: Encuentre GCD de dos números (Mejor alternativa)
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") )
Cuando ejecute el programa, la salida será:
MCD = 9
Esta es una mejor forma de encontrar el GCD. En este método, el número entero más pequeño se resta del número entero más grande y el resultado se asigna a la variable que contiene un número entero más grande. Este proceso continúa hasta que n1 y n2 son iguales.
Los dos programas anteriores funcionan según lo previsto solo si el usuario ingresa números enteros positivos. Aquí hay una pequeña modificación del segundo ejemplo para encontrar el MCD tanto para enteros positivos como negativos.
Ejemplo 3: MCD para números positivos y negativos
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") )
Cuando ejecute el programa, la salida será:
MCD = 9