Pagini recente » Cod sursa (job #1937810) | Cod sursa (job #1094981) | Clasament utcn-2021 | Cod sursa (job #228756) | Cod sursa (job #2660123)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned long ulong;
ulong sieve(ulong n) {
char* notPrime = calloc(n+1, sizeof(char));
if (!notPrime) {
exit(EXIT_FAILURE);
}
for (ulong i = 2; i * i <= n; i++)
if (!notPrime[i])
for (ulong j = i * i; j <= n; j += i)
notPrime[j] = 1;
int count = 0;
for (ulong i = 2; i <= n; i++)
count += !notPrime[i];
return count;
}
int main() {
FILE* in = fopen("ciur.in", "r");
if (!in) {
return 0;
}
FILE* out = fopen("ciur.out", "w");
if (!out) {
fclose(in);
return 0;
}
ulong n;
int r = fscanf(in, "%lu", &n);
if (r != 1) {
fclose(in);
fclose(out);
return 0;
}
fprintf(out, "%lu", sieve(n));
fclose(in);
fclose(out);
return 0;
}