Cod sursa(job #2458468)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 20 septembrie 2019 18:03:24
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

#define input "fact.in"
#define output "fact.out"
#define NMAX 1000000000

using namespace std;
typedef long long ll;

ifstream in(input);
ofstream out(output);

ll P;

ll Total(ll nr)
{
    ll sum = 0;
    while(nr)
    {
        sum += nr / 5;
        nr /= 5;
    }
    return sum;
}

ll Binary_Search(ll cifre)
{
    ll st = 1, dr = NMAX;
    ll sol = -1;
    while(st <= dr)
    {
        ll mid = (st + dr) / 2;
        ll ch = Total(mid);
        //out << st << " " << dr << " -> " << ch << "\n";
        if(ch >= P)
        {
            if(ch == P) sol = mid;
            dr = mid - 1;
        }
        else st = mid + 1;
    }
    return sol;
}

int main()
{
    in >> P;
    out << Binary_Search(P);
    return 0;
}