English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin程序查找两个数字的最大公因数(GCD)

Colección completa de ejemplos de Kotlin

En este programa, aprenderás a encontrar el mayor común divisor entre dos números en Kotlin. Esto se realiza utilizando un bucle while con la ayuda de sentencias if else.

El HCF o GCD de dos enteros puede dividir dos números exactamente (sin residuo).

Ejemplo1:使用while循环查找两个数字的最大公因数GCD

fun main(args: Array<String>) {
    val n1 = 81
    val n2 = 153
    var gcd = 1
    var i = 1
    while (i <= n1 && i <= n2) {
        //verificar si i es factor de dos enteros
        if (n1 % i == 0 && n2 % i == 0)
            gcd = i
        ++i
    }
    println("$n1y $n2el mayor común divisor es $gcd")
}

Al ejecutar este programa, la salida es:

81 es 153 es 9 9

el mayor común divisor de n1y n2en. Aquí, los dos números que se encontrarán su mayor común divisor se almacenan en n

Luego, se ejecuta el bucle for hasta que i sea menor que n1y n2hasta. De esta manera, la iteración1hasta encontrar el número más grande común divisor entre todos los números más pequeños de los dos números.

si n1y n2si todos los números pueden dividirse por i, se establece gcd como el número. Se continúa hasta encontrar el número más grande (GCD), que será n1y n2se pueden dividir sin residuo.

A diferencia de Java, no se puede resolver este problema utilizando un bucle for con condiciones. A continuación, se muestra el código Java equivalente:Java程序查找两个数字的GCD。

Una mejor manera de encontrar el GCD en Kotlin es la siguiente:

Ejemplo2:找到两个数字的GCD(更好的代替方法)

fun main(args: Array<String>) {
    var n1 = 81
    var n2 = 153
    while (n1 != n2) {
        if (n1 > n2")
            n1 -= n2
        else
            n2 -= n1
    }
    println("G.C.D = $n1")
}

Al ejecutar este programa, la salida es:

G.C.D = 9

Esta es una mejor manera de encontrar el GCD. En este método, se restan los enteros más grandes de los enteros más pequeños y luego se asigna el resultado a la variable que guarda el entero más grande. Este proceso continúa hasta que n1y n2Son iguales.

Solo cuando el usuario ingresa un entero positivo, los dos programas anteriores pueden funcionar como se espera. Aquí hay algunos cambios en el segundo ejemplo que pueden encontrar el GCD de números enteros positivos y negativos.

Ejemplo3:GCD de números positivos y negativos

fun main(args: Array<String>) {
    var n1 = 81
    var n2 = -153
    //Siempre un número positivo
    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")
}

Al ejecutar este programa, la salida es:

G.C.D = 9

Colección completa de ejemplos de Kotlin