Cod sursa(job #2985814)

Utilizator dariustgameTimar Darius dariustgame Data 27 februarie 2023 09:45:49
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long long nrZ(long long x)
{
    long long nr = 0;
    long long p = 5;
    while (x / p != 0)
    {
        nr += x / p;
        p *= 5;
    }
    return nr;
}

long long cautBin(long long low, long long high, long long n)
{
    if (low != high)
    {
        long long mij = (low + high) / 2;
        long long nr = nrZ(mij);
        if (nr == n)
        {
            high = mij;
            cautBin(low, high, n);
        }
        else if (nr < n)
        {
            low = mij + 1;
            cautBin(low, high, n);
        }
        else if (nr > n)
        {
            high = mij;
            cautBin(low, high, n);
        }
    }
    else
    {
        fout << low;
    }
}

int main()
{
    long long n;
    fin >> n;
    long long nr = 5 * n;
    cautBin(1, nr, n);
    return 0;
}