Cod sursa(job #396102)

Utilizator APOCALYPTODragos APOCALYPTO Data 14 februarie 2010 15:33:44
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<iostream>
#include<fstream>
using namespace std;
ofstream fout("fact.out");
long rez;
long minim=500000010,p;
long nrz(long n)
{long no=0,ci=5;
 while(n>=ci)
 {no+=n/ci;
 ci=ci*5;
 }
 return no;
}
void cauta(long lo,long hi)
{int k,mid;
    if(lo==hi)
       {if(p==nrz(lo))
        rez=lo;
        else
        rez=-1;
        }
     else
       {mid=lo+(hi-lo+1)/2;
       k=nrz(mid);
       {if(k==p)
           rez=mid;
          else
           {if(k>p)
             cauta(lo,mid-1);
             else
              cauta(mid+1,hi);
           }
       }
       }


}


int main()
{
    ifstream fin("fact.in");
    fin>>p;
    fin.close();

    cauta(0,5*p);
    fout<<rez;
    fout.close();
    return 0;
}