Cod sursa(job #2448151)

Utilizator nTropicGravityesadasdwaadwqafr nTropicGravity Data 15 august 2019 21:30:01
Problema Factorial Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include    <fstream>

using namespace std;

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

#define MAX_N 50000000
#define MIN_N 1

long long P;

int findTrailingZeros(int N) {
    int counter = 0;

    for (int i = 5; N / i > 0; i *= 5)
        counter += N / i;

    return counter;
}

int binSearch(int Left, int Right, long long P) {
    int Mid = (Left + Right) / 2;

    if (Left > Right)
        return -1;

    if (P == findTrailingZeros(Mid))
        return Mid;

    if (P < findTrailingZeros(Mid))
        return binSearch(Left, Mid - 1, P);
    else
        return binSearch(Mid + 1, Right, P);
}

int main() {
    fin >> P;
    fout << binSearch(MIN_N, MAX_N, P);
}