Pagini recente » Cod sursa (job #897051) | Cod sursa (job #3222878) | Cod sursa (job #652938) | Cod sursa (job #644627) | Cod sursa (job #761941)
Cod sursa(job #761941)
/*
Algoritmul de aflare a numerelor prime mai mici decat un numar dat folosind ciurul lui Eratostene.
*/
#include <stdio.h>
#define MAXNUM 2000000
int prim[MAXNUM];
int ciur_eratostene (int numar) {
int prime = 1;
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;
}