Ejercicio: 1Eva_IT2008_T2 Criba de Eratóstenes
Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf
Llenar un arreglo de marcas o tachado con la hipótesis que todos son primos(1).
La prueba de hipótesis consiste en usar un indicador para el número de criba, y otro indicador i para anular marcando con cero (0) las posiciones de los múltiplos.
Inicie eliminando los múltiplos de 2, para luego cambiar a los múltiplos de 3, etc.
Mostrar como resultado solo aquellos números mantienen en marcas válidas (1).
Tarea: Analizar si es necesario hacer funcionar el algoritmo de la prueba de hipótesis hasta n o un número menor. Realizar la validación que n sea mayor que 1.
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 1Eva_IT2008_T2 Criba de Eratóstenes # Propuesta: edelros@espol.edu.ec import numpy as np # INGRESO n = int(input('primos menores que: ')) # PROCEDIMIENTO marcado = np.zeros((n+1),dtype=int) # hipotesis: todos son primos criba = 2 while (criba<=n): marcado[criba] = 1 criba = criba+1 # no son primos los múltiplos criba = 2 while (criba<=n): # revisa el primer múltiplo i = criba * 2 while (i<=n): marcado[i] = 0 i = i + criba criba = criba+1 # SALIDA criba = 2 while (criba<=n): if marcado[criba]==1: print(criba) criba = criba+1
resultado del algoritmo
primos menores que: 30 2 3 5 7 11 13 17 19 23 29 >>>