Zadanie zaliczeniowe z laboratorium Pascala i C. ZSI I. 04/05
-------------------------------------------------------------

Zadane: 27.04.2005, odbiór: 4.05.2005, 0 punktów.

Zad 11c. (0 pkt) (C)
-------------------

Napisz w C program, który wczyta od użytkownika liczbę całkowitą N
(większą od 1) i wypisze wszystkie liczby pierwsze z zakresu 1..N,
na końcu zaś poda liczbę wypisanych liczb pierwszych.
Rozwiąż to zadanie stosując algorytm sita Eratostenesa. 
Koniecznie zastosuj w swoim rozwiązaniu funkcje - poza oczywistą
funkcją main.

Rozszerzenie:
==========

Główną część algorytmu (wykreślanie liczb złożonych z tablicy i wypisywanie liczb
pierwszych) zapisz w dwu postaciach:
  - najpierw używając składni tablicowej,
  - potem przepisz pierwszą wersję używając składni wskaźnikowej.

Uwaga:
======
 - programy nie kompilujące się kompilatorami języka C _nie_ będą sprawdzane,
   niezależnie od tego czy kompilują się kompilatormai C++ (dotyczy to
   _także_ komentarzy //, których nie ma w C),
 - pamiętaj że pliki źródłowe w C mają rozszerzenie .c (a nie .cpp), użycie
   innego rozszerzenie może spowodować wywołanie kompilatora C++ a nie C,
 - użyj dynamicznej tablicy do pamiętania sita,
 - pamietaj o zwolnieniu pamięci,
 - pamiętaj o włączeniu _wszelkich_ dostępnych ostrzeżeń kompilatora.

Algorytm Sita Eratostenesa:
===========================
Działanie tego algorytmu jest następujące:
 - tworzymy zbiór wszystkich liczb z przedziału 2..k (można utworzyć zbiór 
   wszystkich liczb z przedziału 0..n),
 - po kolei sprawdzamy wszystkie liczby z przedziału 2..k:
    - jeśli nie należą do zbioru to je pomijamy,
    - jeśli należą, to je wypisujemy i usuwamy ze zbioru ich
      wszystkie wielokrotności.
Uwaga: powyższy algorytm można zmodyfikować tak by był nieco efektywniejszy - 
przeanalizujemy to na laboratorium.