Cod sursa(job #2609141)

Utilizator CriviCriveanu Bogdan Crivi Data 2 mai 2020 11:19:56
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda igorj_mentorat1 Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

ifstream in;
ofstream out;

long long nrz(long long x)
{
    long long nr = 0;
    long long put = 5;
    while (x >= put)
    {
        nr += x / put;
        put*= 5;
    }
    return nr;
}

void cb(long long lf, long long rg,long long z,long long & pz)
{
    long long m = (lf + rg) / 2;
    if (lf > rg)
    {
        pz = lf;
    }
    else
    {
        if (nrz(m) >= z)
            cb(lf, m - 1, z, pz);
        else
            cb(m + 1, rg, z, pz);
    }
}

int nrc, nrl, i, j;
long long z, lf, rg;

int main()
{
    in.open("fact.in");
    out.open("fact.out");

    in >> z;
    if (z == 0)
        out << 1;
    else
    {
        lf = 1;
        rg = 5 * z;
        long long pz = 0;
        cb(lf, rg, z, pz);
        if (nrz(pz) == z)
            out << pz;
        else
            out << -1;
    }
}