var
  power_of_5 : integer;
  digit : integer;
  number : integer;

begin
  { to find the largest power of 5 < 32767:
    1. find ln(32767)
    2. find ln(5)
    3. divide ln(32767)/ln(5)
    4. take the integer portion of the quotient
    5. 5 to the power of the result of step 4 is the number! }

  { read a number and perform error checking }

  repeat
    write('please enter a non-negative number: ');
    readln(number);
    if (number < 0) then
      writeln('the number you just typed is less than zero')
  until number >= 0;

  { now do the conversion }

  write(number,'(10) = ');

  power_of_5 := 15625; { 15625 is the largest power of 5 < 32767 }

  while power_of_5 > 0 do
    begin
      { figure out a digit per iteration }
      
      digit := 0; { assume the number has 0 power_of_5 }

      { this inner loop figures out how many times power_of_5 
        can be counted in number }

      while number >= power_of_5 do
        begin
          digit := digit + 1;
          number := number - power_of_5
        end;

      { at this point, number < power_of_5 }

      write(digit);

      power_of_5 := power_of_5 div 5
    end;

  writeln('(5)')
end.

