Cod sursa(job #941057)

Utilizator superman_01Avramescu Cristian superman_01 Data 17 aprilie 2013 20:38:06
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
using namespace std;
#include <fstream>


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

int div5(int x)
{

    int nr=0, y=5;
    while(y<=x)
    {
        nr=nr+x/y;
        y*=5;
    }

    return nr;
}

int search(int st, int dr)
{
    long long mij,nr;
    if(st>dr) return 0;
        mij=(st+dr)/2;

         nr=div5(mij);
        if(nr==p)
          return mij;
        else
          if(p<nr)
             return search(st,mij-1);
          else
             return search(mij+1,dr);

}
int main()
{
     int i,n;
    f>>p;

    if(p==0)
    { g<<1; return 0;}
    else
    {
        n=search(1,2000000000);
        if(n==0)
            n=-1;
        else
            while(n%5!=0)
                n--;
    }
    g<<n;
    return 0;
}