/* Nombres premiers */
/*d'apres JEAN FRUITET*/
#include <stdio.h>
#include <math.h> /* F. Mathéma. */
#define MAXTAB 29000
FILE *fich;
long i,j,n,temps,load,q;
int premier[MAXTAB];
void main(void) /* Programme
principal */
{
fich=fopen("nb.txt","w+");
i=4;
n=9;
j=0;
q=0;
premier[0]=2;
premier[1]=3;
premier[2]=5;
premier[3]=7;
temps=4;
fprintf(fich,"Les 29000 premiers nombres premiers :\n 2\t3\t5\t7\t");
do
{
j=0;
while ((n%premier[j]) &&
(premier[j]<=sqrt(n)) && (j<i))
j++;
if (n%premier[j])
{
temps++;
load++;
fprintf(fich,"%ld\t",n);
if (load % 290==0)
{ q++;
clrscr();
printf(" LOADING\n");
printf(" %d %",q);}
premier[i++]=n;
if (temps % 12==0)
fprintf(fich,"\n");
}
n+=2;
}
while (i<MAXTAB);
} /* Fin du programme */
voila.
en gros il teste chaque nombre compris entre 1 et 29000 (il verifie si le reste de la division entiere par chaque premier precedants est egale a 0 )
le programme a l'avantage d'etre extremement rapide (c'est pas moi qui l'ai concu)
a+