#include<stdio.h>
#include <stdlib.h>
#define MAX 100

int Sieb_des_Eratosthenes()
{
    long long unsigned int i, j, x;
    x = 0;
    char *array;
    array = calloc((MAX + 1), sizeof(char));
    if (array==NULL) {
       printf("Error allocating memory!\n");
       return -1; //return with failure
    }
    
    for(i = 2; i <= sqrt(MAX); i++)
    {
       if(array[i] == 0)     
       {
           //array[i] = 1;
           x++;
           printf("prime %d ", i);
           for(j = i * i; j <= MAX; j += i)
           {
                 array[j] = 1;
           }      
       }
    }
    
    printf("Found: %d\n", x);

    for(i = 2; i <= MAX; i++) {
        if (array[i] == 0) {
		    printf("Is prime: %d\n", i);
	    }
    }

    free(array);
    array = NULL;
    return 0;
}

main()
{
   return Sieb_des_Eratosthenes();
}