Pagini recente » Cod sursa (job #2930324) | Cod sursa (job #19573) | Cod sursa (job #218901) | Cod sursa (job #124685) | Cod sursa (job #761919)
Cod sursa(job #761919)
#include <stdio.h>
/*
Algoritmul de aflare a numerelor prime mai mici decat un numar dat folosind ciurul lui Eratostene.
*/
int ciur_eratostene (int numar) {
int prime = 1;
int prim[numar / 2];
int i, j;
for (i = 1; (i << 1) + 1 <= numar; i++)
prim[i] = 1;
for (i = 1; (i << 1) + 1 <= numar; i++) {
if (prim[i]) {
prime++;
j = i + i + i + 1;
while ((j << 1) + 1 <= numar) {
prim[j] = 0;
j += (i << 1) + 1;
}
}
}
return prime;
}
int main () {
int numar;
FILE *f_in = fopen("ciur.in", "r");
FILE *f_out = fopen("ciur.out", "w");
fscanf(f_in, "%d", &numar);
int prime = ciur_eratostene(numar);
fprintf(f_out, "%d\n", prime);
return 0;
}