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