Cod sursa(job #2337634)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 6 februarie 2019 16:24:19
Problema Factorial Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;

ifstream fin( "fact.in" );
ofstream fout( "fact.out" );

const int INF = 2000000000;

int K;

long long NrZerouri( int val )
{
  long long ans = val / 5;

  int aux = 25;
  while( aux <= val )
  {
    ans += 1LL * val / aux;
    aux *= 5;
  }

  return ans;
}

int BinSearch( int lf, int rg )
{
  if( lf > rg ) return INF;

  int mid = ( lf + rg ) / 2;
  long long rez;

  rez = NrZerouri( mid );

  if( rez > K ) return BinSearch( lf, mid - 1 );
  if( rez < K ) return BinSearch( mid + 1, rg );

  return min( mid, BinSearch( lf, mid - 1 ) );
}

int main()
{
  fin >> K;

  int res = BinSearch( 1, 10000000 );

  fout << res << '\n';

  return 0;
}