Cod sursa(job #941059)

Utilizator superman_01Avramescu Cristian superman_01 Data 17 aprilie 2013 20:40:10
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
//problema facauta la plictiseala
//n-aveam altceva mai bun de facut

#include<fstream>
#include<utility>


using namespace std;

int p;
int Answer;

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

int numb_power5( int n)
{
    int cnt(0);
    int x(5);
    while( x <= n )
    {
        cnt+=n/x;
         x*=5;

    }
    return cnt;
}
int binary_search ( int left , int right )
{
    int mid;
    long long number;
    if(left>right)
        return 0;
    mid=(left+right)/2;
      number=numb_power5(mid);
     if(number == p )
        return mid;
     else
        if( number<p)
        binary_search(mid-1,right);
     else
        binary_search(left,mid-1);
}

int main ( void )
{
   f>>p;
   if( p == 0)
      g<<1;
   else
   {
    Answer=binary_search(1,2000000000);
    if( Answer == 0 )
       g<<-1;
    else
    {
        while( Answer % 5 )
            --Answer;
        g<<Answer;
    }

   }
   f.close();
   g.close();
   return 0;
}