Programmierung

Sieb des Erastosthenes - Turbo Pascal


 
  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

    { Funktion: Sieb des Erastosthenes, Primzahlen finden
      Autor : DG1XPZ
      Sprache : Turbo Pascal 7.0}

    program erastos;
    var max:integer;

    function prim(n: integer):String;
    var i,j: integer;
    a: array[1..14800] of boolean;
    primS,p: String;
    begin
       primS:='';
       p:='';
       a[1]:=false;
       for i:=2 to n do
       begin
          a[i]:=true;
       end;
       for i:=2 to n div 2 do
       begin
          for j:=2 to n div i do
          begin
            a[i*j]:=false;
          end;
       end;
       for i:=1 to n do
       begin
          if a[i] then
          begin
             Str(i,p);
             primS:=primS+p+',';
          end;
       end;
       write(primS);
       prim:=primS;
    end;

    begin
       Writeln('Sieb des Erastosthenes, Primzahlen ausgeben.');
       Writeln('Bitte Zahl eingeben, bis zu der die Primzahlen ausgegeben werden sollen.');
       write('(max 14800):');
       Readln(max);
       if max <=14800 then Write(prim(max));write('\b \n');
    end.

  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