Cod sursa(job #2215024)

Utilizator IulianOleniucIulian Oleniuc IulianOleniuc Data 20 iunie 2018 19:57:51
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#define INF 1000000000000000000LL

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

long long int n;

long long int f(long long int x) {
    long long int ret = 0;
    for (long long int i = 5; x / i >= 1; i *= 5)
        ret += x / i;
    return ret;
}

int main() {
    fin >> n;

    long long int lo = 0, hi = INF;
    while (hi - lo > 1) {
        long long int md = lo + (hi - lo) / 2;
        if (n > f(md))
            lo = md;
        else
            hi = md;
    }

    if (hi < INF && f(hi) == n)
        fout << hi << '\n';
    else
        fout << "-1\n";
    fout.close();
    return 0;
}