Programa Kotlin para encontrar GCD de dois números

Neste programa, você aprenderá a encontrar GCD de dois números em Kotlin. Isso é feito usando o loop while com a ajuda da instrução if else.

O HCF ou GCD de dois inteiros é o maior inteiro que pode dividir exatamente os dois números (sem resto).

Exemplo 1: Encontre GCD de dois números usando loop 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") )

Quando você executa o programa, a saída será:

 GCD de 81 e 153 é 9

Aqui, dois números cujos GCD podem ser encontrados são armazenados em n1 e n2, respectivamente.

Então, um loop while é executado até que i seja menor que n1 e n2. Dessa forma, todos os números entre 1 e o menor dos dois números são iterados para encontrar o GCD.

Se n1 e n2 são divisíveis por i, mdc é definido como o número. Isso continua até encontrar o maior número (GCD) que divide n1 e n2 sem resto.

Ao contrário do Java, você não pode usar um loop for com condições para esse problema. Aqui está o código Java equivalente: Programa Java para encontrar GCD de dois números.

Há uma alternativa melhor para encontrar GCD em Kotlin da seguinte maneira:

Exemplo 2: Encontre GCD de dois números (melhor 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") )

Quando você executa o programa, a saída será:

 GCD = 9

Essa é a melhor maneira de encontrar o GCD. Nesse método, o inteiro menor é subtraído do inteiro maior e o resultado é atribuído à variável que contém o inteiro maior. Este processo continua até que n1 e n2 sejam iguais.

Os dois programas acima funcionam conforme pretendido apenas se o usuário inserir números inteiros positivos. Aqui está uma pequena modificação do segundo exemplo para encontrar o GCD para inteiros positivos e negativos.

Exemplo 3: GCD para números positivos e 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") )

Quando você executa o programa, a saída será:

 GCD = 9

Artigos interessantes...