Cod sursa(job #867696)

Utilizator Mihai22eMihai Ionut Enache Mihai22e Data 29 ianuarie 2013 23:38:52
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

unsigned int P, i, nr, res, st, mid , end, t;

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

    f >> P;

    end = P * 5;
    if(!P)
        t = 1, res = 1;
    else
    {
        while(st <= end)
        {
            mid = (st + end) / 2;
            nr = 0;
            for(i = 5; i <= mid; i *= 5)
                nr += mid / i;
            if(nr > P)
                end = mid - 1;
            else if(nr == P)
            {
                t = 1;
                res = mid - mid % 5;
                st = end + 1;
            }
            else st = mid + 1;
        }
    }

    if(!t)
        res = -1;

    else g << res << '\n';

    f.close();
    g.close();

    return 0;
}