Cod sursa(job #2700491)

Utilizator cyg_mihaizMIHAI ZARAFIU cyg_mihaiz Data 27 ianuarie 2021 21:15:00
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;
typedef long long ll;
const ll PMAX = 9999999999999;

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

ll check(ll n)
{
    ll ans = 0,p = 5;
    while(n/p > 0)
    {
        ans += n/p;
        p = p * 5;
    }
    return ans;
}

ll bs(int target)
{
    ll st,dr,med;
    st = 1;
    dr = PMAX;
    while(st < dr)
    {
        med = (st + dr) >> 1;
        if(check(med) >= target)
            dr = med;
        else
            st = med + 1;
    }
    med = st + ((dr - st) >> 1);
    if(check(med) == target)
        return med;
    return -1;
}

int main()
{
    ll p;
    fin >> p;
    if(!p)
    {
        fout << "1";
        return 0;
    }
    fout << bs(p);
    return 0;
}