1program primes(output); 2const n = 50; n1 = 6; (*n1 = sqrt(n)*) 3var i,k,x,inc,lim,square,l: integer; 4 prim: boolean; 5 p,v: array[1..n1] of integer; 6begin 7 write(2:6, 3:6); l := 2; 8 x := 1; inc := 4; lim := 1; square := 9; 9 for i := 3 to n do 10 begin (*find next prime*) 11 repeat x := x + inc; inc := 6-inc; 12 if square <= x then 13 begin lim := lim+1; 14 v[lim] := square; square := sqr(p[lim+1]) 15 end ; 16 k := 2; prim := true; 17 while prim and (k<lim) do 18 begin k := k+1; 19 if v[k] < x then v[k] := v[k] + 2*p[k]; 20 prim := x <> v[k] 21 end 22 until prim; 23 if i <= n1 then p[i] := x; 24 write(x:6); l := l+1; 25 if l = 10 then 26 begin writeln; l := 0 27 end 28 end ; 29 writeln; 30end . 31