Criba de Erastotenes :) ALguien me ayuda?

Alda
11 de Noviembre del 2005
Necessito que alguien me ayude a encontrar una mejora a hacerle a este programa, para que calcule mas rapido. Gracias, sois mis idolos :).

#include <stdio.h>
#include <stdlib.h>

#define MAX 20
#define TRUE (1 == 1)
#define FALSE ( 1 == 0)

int main (int argc, char *argv[]){

int p[MAX];
int i, n, candidat;
int divisible;

p[0] = 2;
p[1] = 3;
n = 2;

candidat = p[n-1] + 2;
while (n < MAX) {
divisible = FALSE;
for (i=1; (i <n) && !divisible; i++)
divisible = ((candidat % p[i]) == 0);

if (!divisible)
p[n++] = candidat;

candidat +=2;
}

printf ("*** Garbell d\'Erastotenes ***\n\n");
for (i=0; i < MAX; i++)
printf ("\n |Nombre primer %2d = %1d ",i,p[i]);
printf("\n\n");

system ("PAUSE");
return 0;
}