Наворотили вы тут действительно что-то непонятное, трудноосмысляемое и неудобоваримое.
Код:
var
i,k:longint;
s:extended;
begin
write('K=');
readln(k);
i:=2;
s:=1;
while s<exp(31*ln(2)) do
begin
s:=s+trunc(exp(k*ln(i)));
writeln ('При i=',i,' текущая сумма s=',s);
i:=i+1;
end;
writeln ('Наибольшая сумма равна s=',s);
readln;
end.
остальное, кроме раздела переменных, imho, лишнее
З.Ы. Диапазон значений не проверял, но вроде как верный