Ver Mensaje Individual
  #12 (permalink)  
Antiguo 30/07/2014, 13:43
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 5 meses
Puntos: 49
Respuesta: Buscando números primos, con la criba de Eratóstenes

Cita:
Iniciado por Pantaláimon Ver Mensaje
No me acordaba que había participado aquí. Con lo que me gustan las frikadas numéricas. Aquí una vuelta de tuerca al algoritmo sin perder la esencia (ansi C):
.................................................. ......
Un saludo!
No sé por qué extraño motivo no me compila declarando la variable "top" como unsigned, he de declararla como int.

La salida para los 100 primeros primos no es la esperada:

Código C++:
Ver original
  1. 24 primos
  2.   2  3  5  7 11 13 17 19 23 27 31 39 43 47  0  0  0  0  0  0  0  0  0  0
  3. Process returned 0 (0x0)   execution time : 0.040 s
  4. Press any key to continue.

"Creo" que son 25, pero eso no es más que un ajuste mínmo. Lo raro es que a partir del 47 son todos ceros

Como todos tus códigos requiere de un examen más minucioso a ver que sucede.

Por cierto, la aproximación que usas para limitar la memoria de los "prims" es demasiado "generosa". Como ejemplo para los 100 primeros números da un valor de 48, cuando en realidad son tan solo 25 tal como lo "clava" la relación que uso en mi código, y de CalgaryCorpus por supuesto.

Y ya para 100000000 ni te cuento, da 9375126 primos cuando en realidad son "5761455" con lo que el ajuste no ha de ser tan mínimo como creí en un principio.

Creo que tienes que "afinarlo" un poquitín.

Bueno lo miraré más detenidamente.

¡¡¡Saluditos!!!



Y por cierto, bienvenido otra vez.