AD

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

Ver cursos de Swift en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐦Lecciones de Swift
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 exacta añade ese divisor a la lista y reduce el número. Cuando 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 al 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.

Fíjate en var num = n al principio: el parámetro es constante, así que para modificarlo hay que copiarlo. Es el mismo patrón que en la ordenación de burbuja, y una consecuencia directa de que en Swift los parámetros no se puedan reasignar.

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.

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 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 Swift 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)