Cod sursa(job #2866500)

Utilizator GargantuanRoOprea Rares GargantuanRo Data 9 martie 2022 19:13:01
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream cin("fact.in");
ofstream cout("fact.out");

long long k;
int solve( long long n )
{
    long long p = 5, nz = 0;
    while(p <= n)
    {
        nz += n / p;
        p *= 5;
        if (nz > k)
            return 1;
    }
    if (nz == k)
        return 2;
    if (nz > k)
        return 1;
    return 0;
    ///Legendre
}

int main()
{
    long long  st = 1, dr = 1e17, ans = -1;
    cin >> k;
    while(st <= dr)
    {
        long long mij = st + (dr - st) / 2;
        int ok = solve(mij);
        if( ok == 1 || ok == 2)
        {
            if( ok == 2)
                ans = mij;
            dr = mij - 1;
        }
        else
            st = mij + 1;
    }
    cout << ans;
    return 0;
}