Select Git revision
docker-compose.yml
eratosthene_refactored.c 997 B
#include <stdio.h>
#include <stdbool.h>
void init(int n,bool tab[n],bool val);
void tracer_multiples(int n,bool tab[n],int i);
void garder_nb1er(int n,bool tab[n]);
void print_nb1er(int n,bool tab[n]);
void main() {
int size;
printf("size = ");
scanf("%d",&size);
bool tab[size];
init(size,tab,true);
garder_nb1er(size,tab);
printf("Nombres 1er < %d:",size);
print_nb1er(size,tab);
}
void init(int n,bool tab[n],bool val) {
for (int i=0;i<n;i++) {
tab[i] = true;
}
}
void tracer_multiples(int n,bool tab[n],int i) {
int j = i;
while (true) {
j += i;
if (j >= n) {
break;
}
if (tab[j]) {
tab[j] = false;
}
}
}
void garder_nb1er(int n,bool tab[n]) {
for (int i=2;i<n;i++) {
if (tab[i]) {
tracer_multiples(n,tab,i);
}
}
}
void print_nb1er(int n,bool tab[n]) {
for (int i=2;i<n;i++) {
if (tab[i]) {
printf("%d ",i);
}
}
printf("\n");
}