Cod sursa(job #2448124)

Utilizator nTropicGravityesadasdwaadwqafr nTropicGravity Data 15 august 2019 20:14:56
Problema Factorial Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include    <fstream>

using namespace std;

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

#define MAX_N 500000000
#define MIN_N 1

int P;

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

    for (int i = 5; i <= P; i *= 5)
        counter += P / i;

    return counter;
}

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

    if (Left > Right)
        return -1;

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

    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);
}