Cod sursa(job #913152)

Utilizator raulmuresanRaul Muresan raulmuresan Data 13 martie 2013 09:59:13
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long i, p, st, dr, mijl, cat5, sol;

long long cate5 (int x) {
    long long nr = 0;
    while (x) {
        nr = nr + x / 5;
        x = x / 5;
    }
    return nr;
}

int main() {
    fin >> p;
    st = 1; dr = 500000000;
    sol = -1;
    if (p == 0)
        fout << 1;
    else {
        while (dr >= st) {
            mijl = (dr + st) / 2;
          //  fout<<mijl<<' ';
            cat5 = cate5(mijl);
            //fout<<cat5<<'\n';
            if (cat5 < p)
                st = mijl + 1;
            if (cat5 > p)
                dr = mijl - 1;
            if (cat5 == p) {
                sol = mijl;
                dr = mijl - 1;
            }
        }
        fout << sol;
    }
}