Algoritmo para Determinar si un Número es Primo en PSeInt (Guía 2026)
Los números primos son la base de la criptografía moderna y la seguridad en internet. Pero, ¿cómo le enseñamos a una computadora a identificarlos? En este tutorial de Lógica de Programación, desarrollaremos un algoritmo en PSeInt para detectar si un número es primo. Analizaremos dos enfoques: el método clásico de «conteo de divisores» (ideal para principiantes) y el método optimizado con «banderas lógicas» (para estudiantes avanzados), utilizando comandos como MOD, Para y Si-Entonces.
Conceptos Matemáticos para Programadores
Antes de escribir una sola línea de código, debemos tener clara la definición matemática para traducirla a lógica:
Un número entero mayor que 1 es primo si y solo si tiene exactamente dos divisores: el 1 y él mismo.
Ejemplos: 2, 3, 5, 7, 11…
Nota: El 1 NO es primo (solo tiene un divisor).
Para saber si un número A es divisible por B, usamos el módulo.
Si A MOD B == 0 -> La división es exacta (B es divisor de A).
Nuestro algoritmo buscará cuántas veces el residuo es cero.
Análisis del Algoritmo (Método de Contadores)
El enfoque más intuitivo es intentar dividir el número por todos los valores desde 1 hasta sí mismo:
-
ENTRADA
Un número entero positivo ingresado por el usuario. Variable:
num. -
PROCESO
1. Inicializar un contador de divisores en 0.
2. Crear un cicloParadesdei=1hastanum.
3. Sinum MOD i == 0, incrementamos el contador. -
SALIDA
Evaluación final:
Sicontador == 2, entonces ES PRIMO.
Si no, NO ES PRIMO.
Código Fuente (Método Básico)
Archivo: PrimoBasico.pscDiagrama de Flujo
⚠️ Errores Comunes sobre Primos
Muchos estudiantes fallan en este algoritmo por conceptos matemáticos, no de programación:
Si ingresas el número 1 en el código básico, el bucle encontrará solo 1 divisor. Como divisores != 2, dirá correctamente que no es primo. Sin embargo, muchos intentan "arreglar" el código para que el 1 sea primo. ¡No lo hagas! Matemáticamente el 1 no es primo.
Si quieres verificar si el número 1,000,000 es primo, el código básico hará 1 millón de divisiones. Esto es lento. Si encontramos un divisor (ej: 2), ya sabemos que no es primo y deberíamos detener el ciclo inmediatamente.
Reto: Código Optimizado (Método de la Bandera)
Para números grandes, no necesitamos contar divisores. Basta con encontrar uno solo (aparte del 1) para saber que NO es primo. Además, solo necesitamos buscar hasta la mitad del número (o su raíz cuadrada).
Preguntas Frecuentes (FAQ)
¿Por qué el 2 es el único primo par?
¿Cómo optimizar aún más el ciclo?
n/2, puedes ir hasta la raíz cuadrada: rc(n). Si un número no tiene divisores hasta su raíz cuadrada, no los tendrá después.¿Qué pasa si ingreso números negativos?
Si n <= 1, clasificando negativos como no primos.¿Cómo imprimo los primeros N primos?
Mientras que cuente cuántos primos llevas encontrados, y un ciclo interno que verifique si el número actual es primo.¿Listo para el siguiente nivel?
Domina la lógica de programación con nuestra colección completa.
Ver Más Ejercicios Resueltos