Pagini recente » Cod sursa (job #2486363) | Cod sursa (job #2075727) | Cod sursa (job #2223327) | Cod sursa (job #1701353) | Cod sursa (job #711888)
Cod sursa(job #711888)
#include <stdio.h>
#include <string.h>
#define N (2000000 + 1)
char p[N];
int getPrimeNumbers(int n) {
int nr = 1, i, j;
for (i = 1; ((i * i) << 1) + (i << 1) <= n; i ++) {
if (p[i] == 0) {
for (j = ((i * i) << 1) + (i << 1); (j << 1) + 1 <= n; j+= (i << 1) + 1) {
p[j] = 1;
}
}
}
for (i = 1; (i << 1) + 1 <= n; i++)
if (p[i] == 0) nr++;
return nr;
}
int main(int argc, char **argv) {
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
memset(p, 0, sizeof(p));
int n;
scanf("%d", &n);
printf("%d", getPrimeNumbers(n));
return 0;
}