Cod sursa(job #1250828)

Utilizator Narcys01Ciovnicu Narcis Narcys01 Data 28 octombrie 2014 17:32:24
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    int p, st, dr, nr, i, n, d;
    ifstream fin("fact.in");
    fin >> p;
    fin.close();
    st = n = 0;
    dr = 100000000;
    d = 0;
    while (st <= dr)
    {
        n = (st + dr) / 2;
        nr = 0;
        i = 5;
        while (i <= n)
        {
            nr += n / i;
            i *= 5;
        }
        if (p <= nr)
            dr = n - 1;
        else
            st = n + 1;
        if (p == nr) d = 1;
        else d = 0;
    }
    ofstream fout("fact.out");
    if (!d) fout << "-1";
    else if (st == 0)
        fout << "1";
    else
        fout << st;
    fout.close();
    return 0;
}