Cod sursa(job #2360219)

Utilizator MichaelXcXCiuciulete Mihai MichaelXcX Data 1 martie 2019 14:47:47
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include    <iostream>
#include    <fstream>
//#define LL long long int;

using namespace std;

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

long long p;

int checkZero(long long nr)
{
    long long nrZero = 0;
    long long c = 5;
    while(c<=nr)
    {
        nrZero += nr/c;
        c*=5;
    }
    return nrZero;
}

long long binSearch(long long l, long long r)
{
    while(l < r)
    {
        long long m = (l + r)/2;
        if(checkZero(m) >= p) r = m;
        else l= m + 1;
    }
    return l;
}

int main()
{
    fin >> p;
    if(p == 0)
    {
        cout << 1;
        return 0;
    }

    long long nr = binSearch(1, 500000000);
    if (p == checkZero(nr)) fout << nr;
	else fout << -1;

    return 0;
}