Cod sursa(job #2985819)

Utilizator dariustgameTimar Darius dariustgame Data 27 februarie 2023 09:54:48
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 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;
}

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

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