Cod sursa(job #867697)

Utilizator Mihai22eMihai Ionut Enache Mihai22e Data 29 ianuarie 2013 23:39:26
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 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 == 0)
        t = 1, st = end + 1, res = 1;
    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)
        g << res << '\n';
    else g << -1 << '\n';

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

    return 0;
}