Cod sursa(job #2638542)

Utilizator andrei42Oandrei42O andrei42O Data 28 iulie 2020 17:10:54
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int64_t p, sol, st, dr, zeros(int64_t);
int main()
{
    f >> p;
    sol = -1;
    st = 1, dr = 1000000000;
    while(st <= dr)
    {
        int64_t mi = (st + dr) / 2;
        int64_t nr = zeros(mi);
        if(nr == p)
        {
            sol = mi;
            dr = mi - 1;
        }
        else if(nr < p)
            st = mi + 1;
        else dr = mi - 1;
    }
    g << sol;
    return 0;
}
int64_t zeros(int64_t nr)
{
    int64_t ret = 0;
    for(int64_t k = 5; nr / k; k *= 5)
        ret += nr / k;
    return ret;
}