/* File: eratoit.c
Auteurs: XX
cree le jj mm aa
modifie le:  jj mm aa    */
#include <stdio.h>
#include <assert.h>
#define N 100       /*on calculera les nbs premiers de 1 a 99*/

/*crible d'eratosthene: on barre les multiples du dernier nombre non barré
  et jusqu'a p*p > N
  tab[i]='\0' signifie non barré
  tab[i]='1' signifie barré
*/

int main () {  
  char tab [N];    /* tab[i] correspond a l'entier i */
  long i, lastprem;
  for (i=0;i<N;i++) tab[i]='\0';
  tab[0]='1';
  tab[1]='1';
  lastprem=2;
  while (lastprem*lastprem<N){
    i=2*lastprem;
    while (i<N){ 
      tab[i]='1';
      i=i+lastprem;
    }
    i=lastprem+1;
    while ((i<N)&&(tab[i]=='1')) {
      i++;
    }
    lastprem=i;
  }
  for (i=0;i<N;i++) 
    if (tab[i]==0){
      printf("%ld est premier\n",i);
    }
  return 0;
}

