AD

¿Ya dominas lo básico? Un curso estructurado de Ruby es la vía rápida para dar el salto.

Ver cursos de Ruby en Udemy

Enlace de afiliado. No te cuesta nada extra.

💎Lecciones de Ruby
Lección 67 / 68

Descomponer en factores primos

En esta lección obtendrás los factores primos de un número.

Se prueba dividir por 2 mientras se pueda, luego por 3, y así sucesivamente. Cada división que sale exacta añade ese divisor a la lista y reduce el número. Cuando el número llega a 1, ya está.

El código de ejemplo descompone un número y muestra la lista de factores.

Lo que resulta poco intuitivo es que no hace falta comprobar si el divisor es primo. Cuando llegas a probar el 4, todos los factores 2 ya se han extraído, así que ninguna potencia de 2 puede dividir lo que queda. Los divisores compuestos nunca encajan, y el algoritmo sale gratis.

El bucle interior es el que hace el trabajo real: un número como 8 tiene el factor 2 tres veces, y hay que dividir mientras se pueda antes de pasar al siguiente candidato.

Ruby trae Prime.prime_division(360) en la biblioteca prime, que devuelve los factores con sus exponentes. Y conviene tener presente el límite: este método es rápido con números pequeños y completamente inviable con números de cientos de cifras. Esa dificultad es precisamente lo que sostiene la seguridad de RSA.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Ruby directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)