Cod sursa(job #2381367)

Utilizator VasAlexVasiluta Alex VasAlex Data 16 martie 2019 17:11:11
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p, n, mij, k = -1, val, st = 1, dr = (long long)(1 << 30) * (1 << 30);

long long evaluare5adicaFact(long long n)
{
    long long s = 0, x = 5;
    while(x <= n)
    {
        s += n / x;
        x *= 5;
    }
    return s;
}

int main()
{
    f >> p;
    while(st <= dr)
    {
        mij = (st + dr) / 2;
        val = evaluare5adicaFact(mij);
        if(val == p)
        {
            k = mij;
            dr = mij - 1;
        } else if(val > p)
            dr = mij - 1;
        else
            st = mij + 1;
    }
    g << k;
    return 0;
}