Números primos
Encuentra todos los números primos hasta un límite.
- Nivel
- Intermedio
- Tema:
- Matemáticas
- Conceptos:
- Entrada y salida
- Funciones
- Mientras
- Para
- Matemáticas
Ejecuta, modifica y depura este ejemplo en el navegador.
Lo que aprenderás
La Funcion EsPrimo devuelve un Logico y usa MOD para buscar divisores. El Mientras se detiene antes, al pasar la raíz cuadrada o al encontrar un divisor.
Código
Funcion primo <- EsPrimo(n) Definir primo Como Logico Definir divisor Como Entero primo <- n > 1 divisor <- 2 // Basta con probar divisores hasta la raíz cuadrada de n Mientras primo Y divisor * divisor <= n Hacer Si n MOD divisor = 0 Entonces primo <- Falso FinSi divisor <- divisor + 1 FinMientrasFinFuncionAlgoritmo NumerosPrimos Definir limite, n, contador Como Entero Escribir "¿Hasta qué número busco primos?" Leer limite contador <- 0 Escribir "Primos hasta ", limite, ":" Para n <- 2 Hasta limite Hacer Si EsPrimo(n) Entonces Escribir Sin Saltar n, " " contador <- contador + 1 FinSi FinPara Escribir "" Escribir "Encontré ", contador, " números primos."FinAlgoritmoDiagrama de flujo
Cada bloque del diagrama corresponde a una instrucción del código.
Ejemplo de ejecución
Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.
¿Hasta qué número busco primos?Respuesta del usuario: 50Primos hasta 50:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 Encontré 15 números primos.
Complejidad
Cuánto trabajo y memoria necesita según la cantidad de datos (n).
| Caso | Costo |
|---|---|
| Mejor | O(n√n) |
| Promedio | O(n√n) |
| Peor | O(n√n) |
| Memoria | O(1) |
Desafío
Muestra también la suma de todos los primos encontrados.
Ver pista
Agrega un acumulador en el Para del algoritmo principal.
Ejemplos relacionados
Búsqueda lineal contra binaria
Cuenta las comparaciones que necesita cada búsqueda en la misma lista ordenada.
IntermedioInterés compuesto
Mira cómo crecen tus ahorros año a año.
IntermedioSucesión de Fibonacci
Muestra los primeros términos de la sucesión de Fibonacci.
Básico