void cm_SiebDesEratosthenes(const UL N, bool feld[]) { for(UL i=2; i<=N; ++i) { feld[i] = true; } for(i=2; i*i<=N; ++i) { // nächste Primzahl if(feld[i]==true) for(UL j=i+i; j<=N; j+=i) { feld[j] = false; // alle Vielfachen dieser Primzahl streichen } } } |
Es muss vor der Funktionsdefinition noch (wie im folgenden Listing zu
sehen) mit typedef unsigned long UL; UL als äquivalent zu unsigned
long bekannt gemacht werden.
Arbeitsweise in einem lauffähigen Programm
|