#include #include void sieve(int n) { if (n <= 2) { return; } // Generate array int *a = calloc(n, sizeof(int)); int count = 0; // Actual sieve and count for (int i = 2; i < n; i++) { if (a[i] == 0) { for (int k = 2 * i; k < n; k += i) { a[k] = 1; } } } for (int i = 2; i < n; i++) { if (a[i] == 0) { count++; } } // Print the count printf("%d\n", count); free(a); }