/*
  Programa para calcular los primeros 1,000 numeros primos usando el algoritmo de la criba de Eratostenes
  Autor: Antonio Carrillo Ledesma
  http://www.mmc.geofisica.unam.mx/acl
*/


#include <stdio.h>

// NPB Numero de primos a buscar
#define NPB 1000



int main ()
{
   int n, i, np;
   int p[NPB];

   // Guarda los primeros 2 primos
   p[0] = 2;
   p[1] = 3;
   np = 2;

   // Empieza la busqueda de primos a partir del numero 4
   n = 4;

   // Ciclo para buscar los primeros NPB primos
   while (np < NPB)
   {
      for (i = 0; i < np; i++)
      {
         if((n % p[i]) == 0) break;
      }
      if(i == np)
      {
         p[i] = n;
         np++;
      }
      n++;
   }


   // Visualiza los primos encontrados
   printf("\nVisualiza los primeros %d primos\n", NPB);
   for (i = 0; i < NPB; i++)
      printf("%d\n", p[i]);

   return 0;
}