Cod sursa(job #1608114)

Utilizator Vali_DeaconuVali Deaconu Vali_Deaconu Data 21 februarie 2016 20:39:59
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
# include <fstream>
# include <climits>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");

long long cntzero(long long x) {
    if (!x)
        return 0;
    else
        return x/5 + cntzero(x/5);
}

int p;
int st, dr, mid, nrz, rs;

int main() {
    fin >> p;
    st = 0;
    dr = INT_MAX;
    while (st <= dr) {
        mid = st+(dr-st) / 2;
        nrz = cntzero(mid);
        if (nrz < p)
            st = mid+1;
        else if (nrz > p)
            dr = mid-1;
        else if (nrz == p) {
            if (nrz == 0) {
                fout << 1;
                return 0;
            }
            while (nrz == p && nrz)
                nrz = cntzero(mid--);
            fout << mid+2;
            return 0;
        }
    }
    fout << -1;
    return 0;
}