Cod sursa(job #3262029)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 8 decembrie 2024 13:36:23
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long p, st = 0, dr = 5e8, sol = -1;
long long nrzero(long long n)
{
    long long i = 5, ct = 0;
    while(n >= i)
    {
        ct += n / i;
        i *= 5;
    }
    return ct;
}
void BinarySearch()
{
    long long mij;
    while(st <= dr)
    {
        mij = (st + dr) / 2;
        long long nrz = nrzero(mij);
        if(nrz > p)
            dr = mij - 1;
        else if(nrz < p)
            st = mij + 1;
        else
        {
            sol = (mij / 5) * 5;
            return;
        }
    }
}
int main()
{
    fin >> p;
    BinarySearch();
    fout << sol;
    return 0;
}