#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <time.h>
#include <assert.h>
//#include <string.h>
int main()
{
    int num;
    printf("Find primes up to: ");
    scanf("%d", &num);
    clock_t start, stop;
    assert((start = clock()) != -1);
    int * prime = malloc((num+1) * sizeof(int));
    memset(prime, 0, sizeof(int) * (num+1));
    prime[0] = 1;
    prime[1] = 1;
    int i, j;
    for(i = 2; i <= sqrt(num) + 1; i++)
    {
       if(prime[i] == 0)
       {
           for(j = 2 * i; j <= num;j = j + i)
           {
               prime[j] = 1;
           }
       }
    }
    assert((stop = clock()) != -1);
    double t = (double) (stop-start)/CLOCKS_PER_SEC;
    for(i = 0; i <= num; i++)
    {
       if(prime[i] == 0)   printf("%d ", i);
    }
    printf("\n");
    printf("Run time: %f\n", t);
    free(num);
    return 0;
}