home *** CD-ROM | disk | FTP | other *** search
- { MaxonPascal3-Anpassung / Test: Falk ZĂĽhlsdorff (PackMAN) 1994 }
-
- Program Sieb_des_Eratosthenes;
-
- { written by MJ und JG }
-
- Const max=10000;
-
- { Diese Version benutzt ein Array statt SET: }
-
- Var sieb: ARRAY [1..max] OF BOOLEAN;
- i, j, a, b, m: INTEGER;
-
- Procedure Ausgabe(Var f:text; a,b:integer);
- Const NpL = 10; { Numbers per Line }
- Var i, count:integer;
- Begin
- count:=0;
- IF (a<=2) THEN { Feld repräsentiert nur die ungeraden Zahlen }
- BEGIN
- Write(f, 2:6);
- count := 1;
- END;
- For i:=a to (b DIV 2) Do
- If sieb[i] Then
- Begin
- write(f,(2*i+1):6);
- count:=count+1;
- If count>=NpL Then
- Begin writeln(f); count:=0 End
- End;
- writeln(f)
- End;
-
- Begin
- a :=3; b := 4;
- writeln('Primzahlberechnung durch Sieb des Eradingsbums');
- writeln;
- REPEAT
- write('Maximum: '); readln(m)
- UNTIL (m>0) and (m<2*max);
- FOR i:=1 to (m DIV 2) DO
- sieb[i] := TRUE;
- FOR i:=1 TO TRUNC(sqrt(m)+1) DO
- IF sieb[i] THEN
- Begin
- FOR j:=0 TO ((m-1-b) DIV a) DO
- sieb[b+j*a] := FALSE;
- write((2*i+1):8,chr(13));
- i := succ(i);
- a := a + 2;
- b := b + 2*a-2;
- End;
- Ausgabe(output,1,m)
- End.
-
-
-