Pagini recente » Cod sursa (job #2187809) | Cod sursa (job #3254504) | Cod sursa (job #55906) | Cod sursa (job #2313866) | Cod sursa (job #711885)
Cod sursa(job #711885)
#include <stdio.h>
#include <string.h>
#define N (2000000/8 + 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;
}