Вот собрал новую, среди 20-ти тестов стал проходить первый. По времени всё укладывается. Здесь я решил работать с файлами. Для читабельности сделал двумя функциями.
Код:
program zbs;
function IsSimple(p: cardinal): Boolean;
var
i, k : cardinal;
begin
IsSimple := True;
if (p = 0) or (p = 1) then IsSimple := False;
k := Trunc(Sqrt(p));
for i:=2 to k do
if p mod i = 0 then begin
IsSimple := False;
Break;
end;
end;
function next(num:cardinal):cardinal;
var
n:cardinal;
begin
n:=num;
if n<=2 then begin result:=2; exit; end;
inc(n);
if n or 1 <> n then inc(n);
while (n-num)<200 do
begin
if issimple(n) then break;
inc(n,2);
end;
result:=n;
end;
var
f:text;
T,i:word;
p:array[1..1049]of cardinal;
begin
assign(f,'input.txt');
reset(f);
readln(f,T);
for i:=1 to T do
readln(f,p[i]);
close(f);
for i:=1 to T do
begin
p[i]:=next(p[i]);
end;
assign(f,'output.txt');
rewrite(f);
for i:=1 to T do
writeln(f,p[i]);
close(f);
end.