Cod sursa(job #1770568)

Utilizator AndreiIstetulAndrei Andrei AndreiIstetul Data 4 octombrie 2016 16:19:23
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <climits>
#include <fstream>

long long nr_zerouri(long long n)
{
  long long nr = 0, x = 5;

  while (x <= n)
  {
    nr += n / x;
    x *= 5;
  }

  return nr;
}

long long binara(long long kzero)
{
  long long st = 1, dr = 50, mij, rez;

  while (st <= dr)
  {
    mij = (st + dr) / 2;
    rez = nr_zerouri(mij);

    if (rez == kzero) return mij - mij % 5;
    else if (kzero < rez) dr = mij - 1;
    else st = mij + 1;
  }

  return -1;
}

int main()
{
  int n;
  std::ifstream("fact.in") >> n;
  std::ofstream("fact.out") << ((n == 0) ? 1 : binara(n));
  

  return 0;
}