#include <iostream.h>
typedef unsigned long UL;
void cm_SiebDesEratosthenes(const UL N, bool feld[]);
int main() {
const UL N = 1000000;
bool feld[N+1];
cm_SiebDesEratosthenes(N, feld);
UL anzahl = 0;
for(UL i=2; i<N; ++i) { // Ausgeben der Primzahlen
if(feld[i] == true) {
anzahl++;
cout << " " << i;
if(anzahl % 5 == 0) cout << '\n';
}
}
cout << "\n\n Im Bereich von 2 bis " << N << " befinden sich "
<< anzahl << " Primzahlen.\n";
return 0;
}
void cm_SiebDesEratosthenes(const UL N, bool feld[]) {
for(UL i=2; i<=N; ++i) {
feld[i] = true;
}
for(i=2; i<=N/2; ++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
}
}
}
|