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;
}
|