| 1 | PROGRAM PRIMZAHLEN(INPUT,OUTPUT); |
| 2 | |
| 3 | CONST NMAX=1000; WNMAX=32; |
| 4 | |
| 5 | VAR X,SQUARE, |
| 6 | I,K,LIM,N: INTEGER; |
| 7 | PRIM: BOOLEAN; |
| 8 | P: ARRAY[1..NMAX] OF INTEGER; |
| 9 | V: ARRAY[1..WNMAX] OF INTEGER; |
| 10 | |
| 11 | BEGIN |
| 12 | WRITE("DIE ERSTEN N PRIMZAHLEN: N="); READ(N); |
| 13 | WRITELN; |
| 14 | P[1] := 2; WRITE(2 :5); X := 1; LIM := 1; SQUARE := 4; |
| 15 | FOR I:=2 TO N DO |
| 16 | BEGIN |
| 17 | REPEAT X := X + 2; |
| 18 | IF SQUARE <= X THEN |
| 19 | BEGIN V[LIM] := SQUARE; |
| 20 | LIM := LIM + 1;SQUARE := SQR(P[LIM]) |
| 21 | END ; |
| 22 | K := 2; PRIM := TRUE; |
| 23 | WHILE PRIM AND (K<LIM) DO |
| 24 | BEGIN IF V[K]<X THEN V[K] := V[K] + P[K]; |
| 25 | PRIM := (X<>V[K]); K := K+1 |
| 26 | END |
| 27 | UNTIL PRIM ; |
| 28 | P[I] :=X; WRITE(X :7); IF I MOD 10 = 0 THEN WRITELN |
| 29 | END |
| 30 | END. |