Оптимизация задачи - Pascal

Узнай цену своей работы

Формулировка задачи:

Помогите оптимизировать программу если это возможно и может кто переписать её на другой язык программирования, чтобы это было быстрее. Решаю олимпиаду, всё правильно, но выхожу за рамки по времени ( на 10%)
var s,a:longint;
    n,p:real;
begin
read(s); read(n); read(a);
n:=n+a-1;
while a<=n do begin
                 p:=p+(s/(a*(a+1)));
                 a:=a+1;
                 end;
write(p:100:3);
end.

Решение задачи: «Оптимизация задачи»

textual
Листинг программы
sp:=sp+p;//сумма процентов

Оцени полезность:

14   голосов , оценка 4.071 из 5