#include #define MAX 100 void sieb() { int A[MAX + 1], i, j, k; // Array initialisieren // 1 = Zahl nicht gestrichen, 0 = Zahl gestrichen for (i = 2; i <= MAX; i++) A[i] = 1; // Durchlaufe das Array von 2 aufwaerts bis MAX und // streiche alle Vielfachen der noch im Array vorhandenen Zahlen for (i = 2; i <= MAX; i++) { k = i; // suche naechste nicht gestrichene Zahl while (A[k] == 0) k++; // Vielfache dieser Zahl streichen for (j = k * k; j <= MAX; j += k) A[j] = 0; } // Ausgabe for (i = 1; i <= MAX; i++) if (A[i]) printf (" %d ", i); } int main() { sieb(); printf("\n"); return 0; }