Optimized code to fix perfect numbers in Java.
No need to loop through the entire number. In theory, perfect numbers are those numbers that are equal to the sum of all their divisors.
For example, the number 33550336 is perfect, searching for all its divisors one by one is a high memory expense, so doing the square root optimizes the operation, searching for the divisors only up to its square root = 5792.
- The root square of 28 = 5.29.
- We are looking for a divisor up to the square root.
- When we find a divisor, we take the quotient and we will have two divisors.
Código optimizado para resolver los números perfectos en Java.
Sin necesidad de recorrer el número completo. En teoría los números perfectos son aquellos números que son iguales a la suma de todos sus divisores.
Por ejemplo, el número 33550336 es perfecto, recorrer y dividir todo el número es un gasto alto de memoria, haciendo la raíz cuadrada se optimiza la operación, recorriendo solo hasta su raíz cuadrada = 5792.
- La raíz cuadrada de 28 es 5.29..
- Buscamos los divisores hasta la raíz cuadrada.
- Cuando encontramos un divisor, cogemos el cociente y tendremos dos divisores.