program nuliai_skaiciaus_gale;
  { 124 u‘davinys }
  function kiek_nul (n, sist : integer) : integer;
    { keliais nuliais baigiasi skai‡ius n sistemoje sist }
    var kiek : integer;
  begin
    kiek := 0;
    while n mod sist = 0 do
      begin
        kiek := kiek + 1;
        n := n div sist
      end;
    kiek_nul := kiek
  end;

  function ilgis (n, sist : integer) : integer;
    { randa skai‡iaus n skaitmen— kiekŤ sistemoje sist }
    var ilg, s : integer;
  begin
    ilg := 0;
    while n <> 0 do
      begin
        ilg := ilg + 1;
        n := n div sist
      end;
    ilgis := ilg
  end;

  function sistema (n : integer) : integer;
    { randa sistem…, kurioje skai‡iaus n u‘ražas baigiasi }
    { daugiausia nuli— }
    var max,  { maksimalus rasta nuli— skai‡ius }
        s,    { tiriama ska‡iavimo sistema }
        ss,   { rasta skai‡iavimo sistema }
        k : integer;
   begin
     max := 0;
     s := 2;      { pradedama nuo dvejetain‚s sistemos }
     while max < ilgis (n, s) do
       begin
         k := kiek_nul (n, s);
         if k > max
            then begin
                   max := k;
                   ss := s
                 end;
         s := s + 1   { tirsime didesnŠ skai‡iavimo sistem… }
       end;
     if max = 0
        then sistema := 0
        else sistema := ss
  end;

  var n,    { duotas dežimtainis skai‡ius }
      rez : integer;
begin
   write ('­veskite n : ');
   readln (n);
   rez := sistema (n);
   if rez = 0
      then writeln ('Nei vienoje sistemoje skai‡ius nesibaigia nuliu')
      else writeln (rez);
end.


