Cod sursa(job #2071087)

Utilizator Robert_VRVRobert Vadastreanu Robert_VRV Data 20 noiembrie 2017 11:33:40
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>

using namespace std;

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

int n, sol = -1;


int verif(int k)
{
  int sum = 0, pw;
  pw = 5;
  while (pw <= k)
  {
    sum += k / pw;
    pw *= 5;
  }
  return sum;
}
void bin(int st, int dr)
{
  if (st <= dr)
  {
    int mij = (st + dr) / 2, nr0;
    nr0 = verif(mij);
    if (nr0 == n)  {
      sol = mij;
      bin(st, mij - 1);
    }
    if (nr0 > n)
      bin(st, mij - 1);
    if (nr0 < n)
      bin(mij + 1, dr);
  }
}

int main()
{
  fin >> n;
  if (n == 0)
    fout << 1 << " ";
  else  {
    bin(1, n * 5);
    fout << sol << '\n';
  }
  return 0;
}