Listado de números primos en Python

Pues estaba haciendo un pequeño programa para listar un secuencia de números primos y he pensado que seria interesante compartirla en el blog. Lo primero, recordar que un número primo no es más que un número que sólo es divisible entre 1 y si mismo. Por ejemplo, el número 7 es primo ya que solo es divisible entre él mismo y uno. El número 12 no es primo porque además de ser divisible entre si mismo y uno, lo es también entre 6, 4, 3 y 2 (perdón por la perogrullada, pero a veces conviene refrescar conceptos).

El código que propongo en Python genera todos los números primos entre el número 2 y un número indicado por el usuario con el teclado (recordad que el número 1 NO es primo). Un primer bucle for itera entre el 2 y el número final y un segundo bucle for anidado intenta dividir cada número del primer bucle entre todos los enteros que hay entre 2 y 10. Si encuentra un división exacta entre ese intervalo es que el número no es primo y pone la variable del mismo nombre como False. Si son iguales (divide un número entre si mismo) sale del bucle con el comando break ya que todos los números son divisibles entre si mismos y no debe contabilizarse ese caso. Si no ha encontrado ninguna división exacta entre el número del primer bucle y los números entre 2 y 10, implica que primos = True y por tanto imprime el número en cuestión. Por último lleva la cuenta de cuántos primos se han calculado y lo muestra en pantalla:

Una primera prueba entre 1 y 100 nos muestra los primeros 25 números primos:

Hay 231 números primos entre 1 y 1000:


Por último, calculamos cuántos números primos hay en un millón:

Obtenemos 228.574 números primos en el primer millón. Como curiosidad, en la primera centena de números había un 25% de números primos. En el primer millar el porcentaje baja hasta un 23,1% y en el primer millón vuelve a bajar a un 22,86%. He llegado hasta los diez millones (se ha llevado un buen rato el código ejecutándose) y he obtenido el mismo porcentaje (22,86%), se ve que se estabiliza la cosa.

Para saber más:
Números primos en Python
Código de Python – Determinar si un número es primo o no
Calcular números primos con Python

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Solve : *
12 + 4 =