Ie/Informatyka/Sito Eratostenesa

Algorytm został bardzo dokładnie opisany i wyjaśniony tutaj: 

A oto kod: using namespace std;
 * 1) include

int main { int i, w; bool tab[1001]; // tablica wartości logicznych

/* przyjmijmy, że każdy element jest na początku liczbą pierwszą */ for(i=2; i<=1000; i++) tab[i]=true;

/* wielokrotnościom rozpatrywanych liczb pierwszych przyznajemy wartość false */ for(i=2; i<=1000; i++) { for(w=2*i; w<=1000; w=w+i) tab[w]=false; }

/* wypisanie tablicy */ for(i=2; i<=1000; i++) { if(tab[i]) printf("%d ",i); }

return 0; }


 * Oczywiście 1000 możemy zastąpić zmienną, którą będziemy wczytywać na początku programu (byle nie była ona za duża). tedy trzeba będzie zadeklarować tablicę x+1 elementową, a wszystkie "1000" zamienić na x :)
 * Można też dołączyć bibliotekę iostream i użyć system("pause"), by program nie wyłączał się natychmiast po wypisaniu tablicy.