/**********************************************************************

Crivo de Eratostenes 

Imprime todos os primos entre 1 e N.

***********************************************************************/

#include <stdio.h>

#define N 1000

main()
{
  int i, j, a[N+1];

  for (a[1]=0, i=2; i<=N; i++)
    a[i]=1;

  for (i=2; i*i<=N; i++)
    for (j=i; i*j<=N; j++)
      a[i*j]=0; /* Se k nao e primo, entao ele pode ser fatorado como */
                /* k = i*j com i<=j e i*i<=N. */

  for (i=1; i<=N; i++)
    if (a[i]) printf("%4d", i);
  printf("\n");

  return 0;
}

  

