Cod sursa(job #1082003)

Utilizator PetreFlorinaFMI Petre Florina PetreFlorina Data 14 ianuarie 2014 00:41:54
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
#define M 1000000000

using namespace std;

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

long long p;

long long NumarZero(long long x)
{
    long long nr = 0;
    long long multiplu = 5;

    while(multiplu <= x)
    {
        nr = nr + (x/multiplu);
        multiplu = multiplu*5;
    }
    return nr;
}
void CautBinar(long long stanga,long long dreapta)
  {
      long long bun = -1, mijloc, nr;
      while(stanga <= dreapta)
        {
            mijloc = stanga + (dreapta - stanga)/2;
            nr = NumarZero(mijloc);

            if (nr == p)
            {
                bun = mijloc;
                dreapta = mijloc - 1;
            }
            else
                if(nr > p)
                    dreapta = mijloc - 1;
                else
                    if(nr < p)
                        stanga = mijloc + 1;
        }

        g << bun;
  }
int main()
{
    f >> p;

    if(p == 0)
      g << "1";
      else
      CautBinar(1,M);
    return 0;
}