Cod sursa(job #1036929)

Utilizator borcanirobertBorcani Robert borcanirobert Data 19 noiembrie 2013 19:14:11
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");
long long p;
void Caut_binara();
long long Nr0(long long nr);
int main()
{
    fin >> p;
    Caut_binara();

    fin.close();
    fout.close();
    return 0;
}
void Caut_binara()
{
    long long l = 1, r = 2000000000000000, mij, nr, rez = -1;
    while ( l <= r )
    {
        mij = ( l + r ) / 2;
        nr = Nr0(mij);
        if ( nr > p )
            r = mij - 1;
        if ( nr < p )
            l = mij + 1;
        if ( nr == p )
        {
            rez = mij; r = mij - 1;
        }
    }
    fout << rez << '\n';
}
long long Nr0(long long nr)
{
    long long x = 5, r = 0;
    while ( x <= nr )
    {
        r += nr / x;
        x *= 5;
    }
    return r;
}