Cod sursa(job #2163102)

Utilizator SemetgTemes George Semetg Data 12 martie 2018 16:44:37
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <fstream>
#include <iostream>
#define ll long long
using namespace std;

ifstream in {"fact.in"};
ofstream out{"fact.out"};

ll f(ll n)
{
    ll p5 = 5, s = 0;
    while (p5 <= n) {
        s += n / p5;
        p5 *= 5;
    }

    return s;
}

int main()
{
    int p;
    in >> p;

    if (p == 0) {
        out << 1;
        return 0;
    }

    ll st = 0, dr = 1ll<<62, n = -1;
    while (st <= dr && n == -1) {
        ll m = (st + dr) / 2;

        if (f(m) == p)
            n = m - m % 5;
        else if (p < f(m)) dr = m - 1;
        else st = m + 1;
    }

    out << n;
}