English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este programa, aprenderás a encontrar el máximo común divisor (GCD) de dos números en un programa Java. Esto se hace usando bucles for y while con la ayuda de declaraciones if else.
El HCF o GCD de dos enteros puede ser el entero más grande que puede dividir exactamente dos números (sin residuo).
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) { // verificar si i es factor de dos enteros if(n1 % i==0 && n2 % i==0) gcd = i; } System.out.printf("%d y %d el máximo común divisor es %d", n1, ", n2, gcd); } }
Al ejecutar este programa, la salida es:
81 y 153 el máximo común divisor de n es 9
Aquí, los dos números que se van a encontrar su máximo común divisor se almacenan en n1y n2en medio.
Luego, ejecuta un ciclo for, hasta que i sea menor que n1y n2hasta que se complete. De esta manera, la iteración1hasta encontrar el máximo común divisor de todos los números más pequeños entre los dos números.
si n1y n2Si todos pueden ser divididos por i, entonces configura gcd como el número. Continúa hasta encontrar el número más grande (GCD), que será n1y n2se divide sin resto.}
还可以使用while循环解决这个问题,如下所示:
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("M.C.D = ", + n1); } }
Al ejecutar este programa, la salida es:
M.C.D = = 9
Este es un mejor método para encontrar el M.C.D. En este método, se resta el entero más pequeño del entero más grande, 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.
Sólo cuando el usuario ingresa un entero positivo, los dos programas anteriores pueden funcionar según lo previsto. Aquí hay algunos cambios en el segundo ejemplo para encontrar el M.C.D de números enteros positivos y 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("M.C.D = ", + n1); } }
Al ejecutar este programa, la salida es:
M.C.D = = 9