|
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
|
|
|