Pagini recente » Cod sursa (job #2235923) | Cod sursa (job #1758475) | Cod sursa (job #1222815) | Cod sursa (job #649616) | Cod sursa (job #287324)
Cod sursa(job #287324)
#include <stdio.h>
#include <stdlib.h>
int main() {
unsigned int n, len, i, j, c;
FILE *f;
unsigned char *v;
f = fopen("ciur.in", "r");
fscanf(f, "%d", &n);
fclose(f);
len = (n - 1) / 8 + 1;
v = (unsigned char*)calloc(len, sizeof(char));
for(i = 2; i <= n / 2; i++)
if((v[(i - 1) / 8] & (1 << (i - 1) % 8)) == 0)
for(j = i * 2; j <= n; j += i)
v[(j - 1) / 8] |= 1 << (j - 1) % 8;
c = 0;
for(i = 1; i < n; i++)
if((v[i / 8] & (1 << (i % 8))) == 0)
c++;
f = fopen("ciur.out", "w");
fprintf(f, "%d\n", c);
fclose(f);
return 0;
}