const n = 1000; n1 = 33; (*n1 = sqrt(n)*)
var i,k,x,inc,lim,square,l: integer;
p,v: array[1..n1] of integer;
x := 1; inc := 4; lim := 1; square := 9;
begin (*find next prime*)
repeat x := x + inc; inc := 6-inc;
v[lim] := square; square := sqr(p[lim+1])
while prim and (k<lim) do
if v[k] < x then v[k] := v[k] + 2*p[k];
if i <= n1 then p[i] := x;