¿Cuál es la forma más eficiente de calcular el mínimo común múltiplo de dos enteros?¿Cuál es la forma más eficiente de calcular el mínimo común múltiplo de dos enteros?
Me acabo de ocurrir esto, pero definitivamente deja algo que desear.
int n=7, m=4, n1=n, m1=m;
while(m1 != n1){
if(m1 > n1)
n1 += n;
else
m1 += m;
}
System.out.println("lcm is " + m1);
Sí, LCM con GCD es rápido y fácil de codificar. Un detalle pequeño pero importante: para evitar desbordamientos, calcule el resultado final así: 'lcm = a/gcd * b' en lugar de' lcm = a * b/gcd'. – Bolo
@Bolo - si está "preocupado" por el desbordamiento, debería usar 'long' o en otras circunstancias incluso' BigInteger'. El LCM de dos valores 'int' puede ser un' long'. –
@Stephen C Con el enfoque de Bolo, el LCM se puede calcular sin desbordamiento si se puede representar. No es necesario usar un tipo de número más grande y más lento solo para la multiplicación. – starblue