#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAXNUM 1000000
#define MAXITER 20

int main (void)
{
	long i, j, iter;
	char *prime;
	clock_t start, end;

	start = clock();
	
	for (iter = 0; iter < MAXITER; iter++)
	{
		if (prime = calloc (MAXNUM, sizeof (char)))
		{
			for (i = 2; i < MAXNUM; i++)
			{
				if (!prime[i])
				{
					for (j = i + i; j < MAXNUM; j += i)
						prime[j] = 1;
				}
			}

			free (prime);
		}

#ifdef PRINT_RESULTS
		for (i = 0; i < MAXNUM; i++)
			if (!prime[i]) printf ("%-10ld\n", i);
#endif // PRINT_RESULTS
	}

	end = clock();

	printf("Processor time used = %d\n", (end - start)/CLOCKS_PER_SEC);

	return 0;
}
