Cod sursa(job #278249)

Utilizator Neamtzu21Ciurea Daniel Neamtzu21 Data 12 martie 2009 10:39:15
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include<iostream.h>
#include<fstream.h>

ifstream f("fact.in");
ofstream g("fact.out");

long long p,z;

void citire()
{
     f>>p;
     f.close();
}

inline void divizeaza (long long s, long long d, long long &m)
{
     m=(s+d)/2;
}

/*inline long nr_zero(long long k)
{
     long long s;
     long n;
     s=5; n=1;
     while(s<k)
     {
               while(s%5==0)
               {
                            s/=5;
                            n++;
                            }}
     if(s==n) return n;
     if(s>n) return n-1;
}
*/

long long nr_zero(long long cif)
{
     long t=0;
     while(cif)
     {
               t+=cif/5;
               cif/=5;}
     return t;
}

inline void cauta(long long s, long long d, long long &z)
{
     long long m;
     if(d>s)
     {
            divizeaza(s,d,m);
            long long k=nr_zero(m);
            if(k==p) z=m;
            else 
            if(p>k)
            cauta(m+1, d,z);
            else cauta(s,m,z);
            }
}

main()
{
      citire();
      if(p==0) g<<'1';
      else
      {
          cauta(1,1000000,z);
          if(z==0) g<<'-1';
          else g<<z-1;
          }
g.close();
}