Cod sursa(job #880265)

Utilizator paul.chPaul Chelarescu paul.ch Data 16 februarie 2013 15:56:45
Problema Factorial Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
long long p, m, mijloc, dreapta, stanga, solutie, temp;
inline long long cati_cinci(int numar)
{
    int nr = 0;
    while (numar >= 5 )
    {
        nr += numar / 5;
        numar /= 5;
    }
    return nr;
}
int main()
{
    fin >> p;
    stanga = 1;
    dreapta = 100010000;
    if(p == 0)
    {
        fout << "1";
    }
    else
    {
        while(dreapta > stanga)
        {
            mijloc = (dreapta + stanga)/ 2;
            temp = cati_cinci(mijloc);
            if(temp > p) dreapta = mijloc - 1;
            if(temp < p) stanga = mijloc + 1;
            if(temp == p)
            {
                solutie = mijloc;
                dreapta = mijloc - 1;
            }
        }
        fout << solutie;
    }
    return 0;
}