Blame view

ansi.c 604 Bytes
0e3aac2d   Pierre Cwik   ansi fait
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  #include <stdio.h>
  #include <stdint.h>
  #include <stdlib.h>
  #include <stdbool.h>
  #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;
  }