POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Optimización de código (número primo)

## De O(n) a O(√n): optimización de la verificación de primos con interrupción temprana

Publicado el 08/09/2025

Pregunta: Pedir n números al usuario y decir para cada uno si es primo o no. A partir de esta idea, veamos cómo reducir la complejidad temporal del algoritmo y llevarlo de una solución ingenua a una versión optimizada y escalable.

Recordatorio: un número primo es divisible solo por 1 y por sí mismo. La solución más directa recorre todos los posibles divisores, contando cuántas veces el número se divide exactamente. Si el contador alcanza dos divisiones exactas, el número es primo. Aunque correcto, este enfoque tiene complejidad O(n) y resulta lento para valores grandes.

Primera mejora: evitar comprobar 1 y el propio número. En lugar de recorrer de 1 hasta n, recorremos desde 2 hasta n menos 1. Si encontramos alguna división exacta, incrementamos un contador. Si al finalizar el contador sigue en cero, el número es primo. Esta optimización elimina dos iteraciones, pero no cambia el orden de complejidad.

Idea clave: analizar el patrón de divisores alrededor de la raíz cuadrada. Todo divisor menor que la raíz cuadrada tiene su pareja mayor que la raíz. Por ejemplo, para 24 los pares son 1 x 24, 2 x 12, 3 x 8, 4 x 6 y luego se repiten en orden inverso. Esto implica que basta con comprobar posibles divisores hasta la raíz cuadrada del número. Así pasamos a una complejidad O(raíz de n), una mejora sustancial.

Implementación práctica sin calcular la raíz: en lugar de calcular la raíz, usamos una variable div que comienza en 2 y vamos probando mientras div por div sea menor o igual que n. Dicho de otro modo, mientras el cuadrado de div no supere n. Esto mantiene la comparación en enteros y evita operaciones de punto flotante.

Interrupción temprana: en cuanto encontremos el primer divisor distinto de 1 y del propio número, podemos detener el bucle porque ya sabemos que el número es compuesto. Esta técnica ahorra muchas iteraciones en casos negativos.

Tratamiento de casos especiales y microoptimizaciones: si n es menor que 2, no es primo. Si n es 2, es primo. Si n es par y mayor que 2, no es primo. Tras verificar 2, podemos probar solo divisores impares, lo que reduce aproximadamente a la mitad el número de pruebas. Con estas consideraciones, la verificación típica queda así: 1 verificar n menor que 2, no primo. 2 si n es 2, primo. 3 si n es par, no primo. 4 probar divisores impares desde 3 mientras el cuadrado del divisor no supere n. 5 si alguno divide exactamente, no primo y detener. 6 si no se encontró divisor, es primo.

Complejidad: la versión ingenua es O(n). La versión optimizada con tope en la raíz cuadrada es O(raíz de n). Añadir interrupción temprana y saltar pares mejora el rendimiento práctico, aunque el orden asintótico se mantiene.

Aplicación en entornos reales: en desarrollo profesional de software a medida y aplicaciones a medida, optimizar algoritmos simples como este se traduce en procesos más rápidos, menos consumo de CPU y mejor experiencia de usuario, especialmente cuando se ejecutan en servicios cloud y microservicios que deben escalar. En Q2BSTUDIO aplicamos estas prácticas de optimización y revisiones de rendimiento como parte de nuestras soluciones de software a medida y aplicaciones a medida, con foco en calidad, seguridad y coste total de propiedad.

Q2BSTUDIO: somos una empresa de desarrollo especializada en inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, y servicios inteligencia de negocio con power bi. Integramos algoritmos eficientes, arquitecturas elásticas y observabilidad de extremo a extremo para que tus soluciones rindan al máximo de forma segura y sostenible. Si te interesa aplicar IA a tus procesos, desde clasificación y detección hasta generación y automatización, descubre cómo podemos ayudarte en nuestra página de inteligencia artificial.

Beneficios adicionales: 1 Menor latencia en cálculos intensivos. 2 Menos consumo de recursos en servicios cloud aws y azure. 3 Más robustez ante picos de carga. 4 Escalabilidad y ahorro de costes. 5 Informes claros mediante power bi y prácticas de inteligencia de negocio para monitorizar rendimiento. 6 Seguridad reforzada con auditorías de ciberseguridad y pentesting. 7 Automatización de flujos con agentes IA y orquestación para mantenimiento predictivo.

Conclusión: al transformar un verificador de primos desde un enfoque O(n) hacia O(raíz de n) con interrupción temprana y salto de pares, logramos una gran mejora de eficiencia. Este mismo pensamiento crítico aplicamos en Q2BSTUDIO para optimizar desde pequeños componentes hasta plataformas empresariales completas, combinando ingeniería de alto nivel, inteligencia artificial y ciberseguridad con la flexibilidad del cloud.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio