|   | 
 
 
 
|  
 Sieb des Erastosthenes - Turbo Pascal
 |  | 
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)
 
 
Struktogramm
 
  
 
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.
 
 
Download erastos.zip
 
 |  | 
    |  |