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