1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
#line 1
/* Methode Erathosienne */
#include <stdio.h>
#include <assert.h>
int main (void)
{
long cpt,mult,Indice;
printf("Entrez votre limite: ");
scanf("%d",&Indice);
long *Prim = malloc(sizeof(*Prim)*Indice);
if (Prim != NULL)
{
for(cpt=0; cpt<Indice; cpt++)
{
Prim[cpt]=cpt;
}
for(cpt=2; cpt<Indice; cpt++)
{
for (mult=2; mult<Indice/2; mult++)
{
assert (cpt*mult <Indice);
Prim[cpt*mult]=0;
}
}
printf("\nLes nombre premier entre 2 et %d sont:\n%d",Indice,Prim[cpt]);
for (cpt=1; cpt<Indice; cpt++)
{
if(Prim[cpt]!=0)
{
printf("\n%d",Prim[cpt]);
}
}
free(Prim);
}
return 0;
} |