Cod sursa(job #1385898)

Utilizator Toast97Calin Farcas Toast97 Data 12 martie 2015 15:46:08
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream f ("fact.in");
ofstream g ("fact.out");

int p, sol = 1, st = 1, dr = 400000020;

int nr_0 (int x)
{
    if (!x)
        return 1;

    int nr = 0, pas = 5;

    while (pas <= x)
    {
        nr += x / pas;
        pas *= 5;
    }

    return nr;
}

int main()
{
    f >> p;

    int k, mij;

    while (st <= dr)
    {
        mij = (st + dr) / 2;
        k = nr_0 (mij);

        if (k == p)
        {
            sol = mij;

            while (nr_0 (sol) == p)
                -- sol;
            ++ sol;
            break;
        }

        else if (k < p)
            st = mij;

        else
            dr = mij;
    }

    g << sol;

    f.close ();
    g.close ();
    return 0;
}