#include #include #include #include #define erreur(message) { fprintf(stderr,message) ; exit(EXIT_FAILURE); } int premier(int n){ int taille=n*n+1; int result=-1; int *crible = malloc( taille * sizeof(int) ); int i; for(i=0;i<=n*n;i++) crible[i]=true; for(i=2;i<=n;i++) if(crible[i]){ int j=i*i; while(j<=n*n){ crible[j]=false; j += i; } } for(i=n*n;i>=0;i--) if(crible[i]){ result=i; break; } return result; } int main(void){ int n; if(scanf("%d",&n)!=1) erreur("Echec de lecture du nombre\n"); printf("premier -> %d\n",premier(n)); return 0; }