Cod sursa(job #1471963)

Utilizator alexandru.ghergutAlexandru-Gabriel Ghergut alexandru.ghergut Data 15 august 2015 18:54:26
Problema Factorial Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;

int getZeroes(int N)
{
    int result = 0, powerOf5 = 5, zeroes;

    do
    {
        zeroes = N / powerOf5;
        powerOf5 *= 5;
        result += zeroes;
    } while (zeroes);

    return result;
}

int binarySearch(int left, int right, int P)
{
    int middle = -1, zeroes = -1;

    while (left < right - 1)
    {
        middle = left + (right - left) / 2;
        zeroes = getZeroes(middle);

        if (zeroes >= P)
            right = middle;
        else
            left = middle;
    }

    if (zeroes != P)
        return -1;

    return right;
}

int main()
{
    int P;
    ifstream f("fact.in");
    f >> P;
    f.close();

    ofstream g("fact.out");
    if (P == 0)
        g << 1;
    else
        g << binarySearch(0, P * 5, P);
    g.close();

    return 0;
}