/* il crivello di eratostene per la ricerca dei numeri primi */ #define N 1000 int main (void) { int i, j, a[N+1]; /* obiettivo: porre a[i]=0 se i non e' primo * array inizializzato a 1 * cioe' fino a prova contaria i numeri sono primi */ for (a[1]=0, i=2; i <= N; i++) a[i]=1; /* i posti dell'array corrispondenti ai multipli di i e j * corrispondono a numeri non primi */ for (i=2; i <= N/2; i++) for (j=2; j<= N/i; j++) a[i*j]=0; /* stampa gli indici il cui elemento =1 */ for (i=1; i <= N; i++) if (a[i]) printf ("%4d", i); printf ("\n"); return 0; }