File: PRIMZA.PS of Tape: Various/Decus/decus-3
(Source file text) 

PROGRAM PRIMZAHLEN(INPUT,OUTPUT);

   CONST NMAX=1000;  WNMAX=32;

   VAR   X,SQUARE,
         I,K,LIM,N:  INTEGER;
         PRIM: BOOLEAN;
         P: ARRAY[1..NMAX] OF INTEGER;
         V: ARRAY[1..WNMAX] OF INTEGER;

 BEGIN
   WRITE("DIE ERSTEN  N  PRIMZAHLEN:   N="); READ(N);
   WRITELN;
   P[1] := 2; WRITE(2 :5); X := 1; LIM := 1; SQUARE := 4;
   FOR I:=2 TO N DO
   BEGIN
     REPEAT X := X + 2;
        IF SQUARE <= X THEN
            BEGIN V[LIM] := SQUARE;
              LIM := LIM + 1;SQUARE := SQR(P[LIM])
            END ;
        K := 2; PRIM := TRUE;
        WHILE PRIM AND (K<LIM) DO
          BEGIN IF V[K]<X THEN V[K] := V[K] + P[K];
             PRIM := (X<>V[K]); K := K+1
          END
     UNTIL PRIM ;
     P[I] :=X; WRITE(X :7); IF I MOD 10 = 0 THEN WRITELN
    END
  END.