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

Tutorial Básico de Java

Java Controle de Fluxo

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceção Java

Java Lista (List)

Java Queue (Fila)

Java Map Coleção

Java Set Coleção

Java Input/Output (I/O)

Java Reader/Writer

Outros tópicos Java

Programa Java para encontrar o maior número comum divisor de dois números

Exemplos completos Java

Neste programa, você aprenderá a encontrar o maior número comum divisor (GCD) de dois números em um programa Java. Isso é feito usando loops for e while com a ajuda de comandos if else.

O HCF ou GCD de dois inteiros pode ser exato ao dividir os dois números (sem resto) pelo número inteiro máximo.

Exemplo1:Use loops for e if para encontrar o maior número comum divisor de dois números

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)
        {
            // Verifique se i é um fator de dois inteiros
            if(n1 %i == 0 && n2 %i == 0)
                gcd = i;
        }
        System.out.printf("%d e %d o maior número comum divisor é %d", n1, n2, gcd);
    }
}

Quando executar o programa, a saída será:

81 e 153 o maior número comum divisor é 9

Aqui, os dois números cujo maior número comum divisor será encontrado serão armazenados em n1e n2nele.

Em seguida, execute um loop for, até que i seja menor que n1e n2até lá. Assim, a iteração1até encontrar o maior número comum divisor entre todos os números mais pequenos dos dois números.

se n1e n2Se todos puderem ser divididos por i, defina gcd como o número. Continue até encontrar o número máximo (GCD), que será n1e n2sempre dividir sem resto.}}

Também podemos resolver este problema usando um loop while, conforme mostrado a seguir:

Exemplo2:Usar loop while e if else para encontrar o GCD de dois números

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);
    }
}

Quando executar o programa, a saída será:

G.C.D = 9

Esta é uma maneira melhor de encontrar o GCD. Neste método, subtrai-se o número menor do número maior e o resultado é atribuído à variável que armazena o número maior. Este processo continua até que n1e n2iguais.

Apenas quando o usuário inserir um número inteiro positivo, os dois programas acima funcionarão conforme esperado. Aqui está uma modificação do segundo exemplo para encontrar o GCD de números inteiros positivos e negativos.

Exemplo3:Os números positivos e negativos são GCD

public class GCD {
    public static void main(String[] args) {
        int n1 = 81, n2 = -153;
        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);
    }
}

Quando executar o programa, a saída será:

G.C.D = 9

Exemplos completos Java