/*----------------------------------------------------------*/ /* */ /* AUTHOR : Eric VIOLARD */ /* E-MAIL : violard@icps.u-strasbg.fr */ /* ORGANISM : Université Louis Pasteur (Strasbourg) */ /* CREATION : 28/12/02 */ /* */ /* ---------------------------------------------------------*/ /* Programme qui affiche les nombres premiers inférieurs à N où N est une constante définie dans le programme. On utilise la méthode d'Erathostène pour trouver ces nombres. */ #define N 500 /* --- Définition du type des booléens --- */ typedef int bool; #define true 1 #define false 0 void barrer_multiple(int n, int T[N+1]) /* barre les multiples de n dans le morceau de tableau de l'indice n+1 à l'indice N (par effet de bord) */ /* post-conditions : T[i]=false si i > n et i est un multiple de n */ { int i; for(i=n+1;i<=N;i++) if(i%n==0) T[i]=false; } main() { bool T[N+1]; /* T[n] est à faux si n est barré, à vrai sinon */ int i; /* pour parcourir le tableau T */ /* --- initialisation de T --- */ for(i=2;i<=N;i++) T[i]=true; /* --- déroulement du calcul --- */ for(i=2;i<=N;i++) if(T[i]) barrer_multiple(i,T); /* --- affichage des nombres premiers --- */ for(i=2;i<=N;i++) if(T[i]) printf("%d ",i); printf("\n"); }