Programmierung

Sieb des Erastosthenes - C++


 
  1. Aufgabe

    Finden von Primzahlen.

    1. Boolean-Array mit true bis max füllen
    2. weil 0 und 1 laut Definition keine Primzahl, diese Streichen (durch 0 ersetzen)
    3. dann nächste nicht gestrichen Zahl suchen (2)
    4. um den Wert dieser Zahl weitergehen und streichen (4,6,8,10)
    5. wenn Ende des Arrays erreicht dann zu Punkt 3. gehen
    6. übrig bleiben alle nichtgestrichenen Zahlen -> Primzahlen (2,3,5,7)

  2. Struktogramm

    Sieb des Erastosthenes

  3. Quellcode

    #include<iostream.h>
    // Funktion: Sieb des Erastosthenes, Primzahlen ausgeben
    // Autor : DG1XPZ
    // Sprache : Borland C++ V5.0
    void prim(int p);
    const max=
    100000;

    void main(void){
       int p;
       cout<<
    "Sieb des Erastosthenes, Primzahlen ausgeben.\n";
       cout<<
    "Bitte Zahl eingeben, bis zu der die Primzahlen ausgegeben werden sollen:\n";
       cout<<
    "(max "<<max<<"):";
       cin>>p;
       prim(p);
    }

    void prim(int p){
       int i,j;
       bool z[max];
       z[
    1]=false;
       for(i=
    2;i<=p;i++){
          z[i]=true;
       }
       for(i=
    2;i<p/2;i++){
          for(j=
    2;j<p/i;j++){
             z[i*j]=false;
          }
       }
       for(i=
    2;i<=p;i++){
          if (z[i]) cout<<i<<",";
       }
       cout<<
    "\b \n";
    }


  4. Download erastos.zip

 

http://www.counter-service.de http://www.counter-service.de

Home
uebermich
Programmierung
Amateurfunk
Elektronik
Download
Links
E-Mail
Gästebuch/Meckerecke
Counter-DG1XPZ