#define N 17
#include <stdio.h>

/**************/
/* Exercice 1 */
/**************/

int est_symetrique(int t[N][N]) {
  int i, j;
  for(i = 0; i < N; i++) 
    {
      for(j = 0; j < i; j++) 
	{
	  if(t[i][j] != t[j][i]) {return 0;}
	}
    }
  return 1;
}

/**************/
/* Exercice 2 */
/**************/



/**************/
/*  Probleme  */
/**************/

/**************/
/* Question 1 */
/**************/
void initialise(int premier[N]) {
  int i;
  premier[0] = 0;
  premier[1] = 0;
  for(i = 2; i < N; i++) 
    {premier[i] = 1;}
}


/**************/
/* Question 2*/
/**************/
void elimine_multiples(int premier[N], int i) {
  int j;
  for(j = 2*i; j < N; j = j + i) 
    {premier[j] = 0;}
}


/**************/
/* Question 3 */
/**************/
void crible(int premier[N]) {
  int i = 2; 
  while (i < N/2) 
    {
    elimine_multiples(premier, i);
    i++;
    while(premier[i] == 0) 
      {i++;}
    }
}

/* Ou alors */
void crible2(int premier[N]) {
  int i; 
  for(i = 2; i < N/2; i++) 
    {
      if (premier[i] == 1) 
	{elimine_multiples(premier, i);}
    }
}

/**************/
/* Question 4 */
/**************/

int main () {
  int premier[N]; 
  int i;
  initialise(premier);
  crible2(premier);
  for(i = 2; i < N; i++) 
    {
      if (premier[i] == 1) 
	{printf("%d\n", i);}
    }
}

