Var
hay:longint; { количество стогов сена }
eaten:longint; { количество съеденных стогов }
procedure Eat(var n:longint);
{ съесть 4 стога }
begin n:=n-4; eaten:=eaten+4 end;
procedure Sheep(n:longint);
{ овечка, которой передано n стогов сена }
begin
if n>=4 then begin
if (n mod 5)=0 then begin
n:=n div 5;
Sheep(n);
Sheep(3*n)
end
else begin
Eat(n);
Sheep(n)
end
end
end;
begin
Readln(hay);
eaten:=0;
Sheep(hay);
Writeln(eaten)
end.
Тестовое решение:
29
8