Cod sursa(job #2620830)

Utilizator CharmichlesAndrei Brihac Charmichles Data 29 mai 2020 18:46:11
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>

#include <fstream>

#include <algorithm>



using namespace std;



ifstream fin("fact.in");

ofstream fout("fact.out");



long long nrZero(long long val) {

    long long nr = 0, p = 5;

    while (p <= val) {

        nr += val / p;

        p *= 5;

    }

    return nr;

}



long long cautareBinara(long long val) {

    if (val == 0) {

        return 1;

    }

    if (val == 1) {

        return 5;

    }

    long long stg = 0, dr = 5 * val;

    while (stg < dr) {

        long long mij = (stg + dr) / 2;

        if (nrZero(mij) == val) {

            while (nrZero(mij - 1) == val) {

                mij--;

            }

            return mij;

        }

        if (nrZero(mij) < val) {

            stg = mij + 1;

        }

        else {

            dr = mij - 1;

        }

    }

    fout << "-1" << '\n';

}



int main() {

    long long p;

    fin >> p;

    fout << cautareBinara(p);

    fin.close();

    fout.close();

    return 0;

}