Показать сообщение отдельно
  #9  
Старый 13.01.2013, 00:14
Аватар для D_E_N_
D_E_N_ D_E_N_ вне форума
Прохожий
 
Регистрация: 27.06.2012
Сообщения: 15
Репутация: 10
По умолчанию

Вот собрал новую, среди 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.