вот несколько оптимизированная, но по-прежнему правильно работающая программа. просто цикл до 2'000'000'000 со сложением чисел с плавающей точкой - долгая процедура. по идее, extended хранит 19-20 десятичных знаков, а значит и результат для максимального теста влезет в него.
Код
{$A+,B-,D+,E-,F-,G+,I-,L+,N+,O-,P-,Q-,R-,S-,T-,V-,X+,Y-}
{$M 64000,0,655360}
var
i, b : longint;
sm, sum, a : extended;
begin
read(a, b);
sum := 0;
sm := a/b;
for i := b downto 1 do begin
a := a - sm;
sum := sum + trunc(a);
end;
writeln(sum:0:0);
end.