add SCR Part

This commit is contained in:
2025-09-26 08:56:34 +02:00
parent 96b3c953f8
commit e8e867b878
28 changed files with 758 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <unistd.h>
void afficher(char* crible, int n) {
for(int i = 0; i < n; i++) {
if(crible[i]) printf("%d ", i);
}
printf("\n");
}
void rayer_multiples(char* crible, int n, int k) {
for(int i = 0; i < n; i++) {
if(i % k == 0 && i != k) crible[i] = 0;
}
}
int main(int argc, char **argv)
{
int n=1000;
if(argc>1){
n = (int)strtol(argv[1],NULL,0);
assert( n > 0 );
}
char* crible = (char*)mmap(NULL, n * sizeof(int), PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0);
assert(crible != MAP_FAILED);
for(int i=0; i<n; i++){
crible[i] = 1;//par défaut: pas encore barré
}
for(int k=2; k<n; k++){
rayer_multiples(crible, n, k);
}
afficher(crible, n);
return 0;
}