Cod sursa(job #2111948)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 22 ianuarie 2018 20:14:16
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;

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

long long p[] = {1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125};

int main()
{
    long long val;
    fin >> val;

    long long  st = val + 1, dr = 20000000000, rez = -1;
    while(st <= dr){
        long long mid = (st + dr) / 2;

        long long nrzero = 0;
        long long nr = 1;
        while(p[nr] <= mid){
            nrzero += (mid / p[nr]);
            ++nr;
        }
        if(nrzero == val)
            rez = mid, dr = mid - 1;
        else if(nrzero > val)
            dr = mid - 1;
        else
            st = mid + 1;
    }

    if(rez == 0)
        rez = -1;
    fout << rez << '\n';
    return 0;
}