Obtener el mayor divisor de un número en Java

Hola a todos, hoy os voy a explicar como podemos obtener el mayor divisor de un número en Java.

Puse ser que necesitemos obtener el mayor divisor de un número en Java, sin contar el propio número.

En el caso de que sea un número primo, el mayor será si mismo.

Para saber si un número es primo o no en Java, tenemos un manual donde hablamos de ello:

Número primo en Java

Lo primero que vamos a hacer es pedir un número y guardaremos en otra variable el número absoluto, para evitar problemas con negativos.

Antes de buscar el divisor, si es primo, mostramos el número original directamente.

Ahora, si que vamos a buscar el mayor divisor. Recorremos desde el numero dado menos 1 hasta el 1, sin contar este. Cuando encontremos el primero, saldremos del bucle y terminaremos la busqueda.

Por último, debemos mostrar el numero. Si el número original es negativo, lo pongo como negativo.

Veamos el resultado con diferentes números:

mayor divisor java 1

mayor divisor java 2

Si el número es primo:

mayor divisor java 3

mayor divisor java 4

También os lo dejo como una función para reutilizar en otros proyectos:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

2 comentarios

  1. POLLO

    Math.sqrt(numero);, QUE PINTA LA RAÍZ CUADRADA, TU ESTÁS SEGURO QUE ESTO FUNCIONA?, A MI ME DA QUE NO. HAZ TESTING CON DIFERENTES POSIBILIDADES: NÚMEROS GRANDES, NÚMEROS NO PRIMOS, ETC.

  2. Disco Duro de Roer Post author

    Lo de math.sqrt es para sacar la raíz cuadrada, en este caso es de utilidad porque un divisor no será mayor que su raíz cuadrada y te evita recorrer una cantidad de números que sabes que no pueden ser divisores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539