Cod sursa(job #2352998)

Utilizator adrian_negreanuAdrian Negreanu adrian_negreanu Data 23 februarie 2019 19:51:02
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

ifstream cin("fact.in");
ofstream cout("fact.out");

int nz(int n) {
    int f = 5, r = 0;
    while (n>=f) {
        r+=n/f;
        f *= 5;
    }
    return r;
}

int P, N;

int main() {
    cin >> P;
    if (P) {
        int st = 0, dr = 5 * P + 5, found = 0, mij;
        while (dr-st>1 && !found) {
            mij = (st + dr) / 2;
            int v = nz(mij);
            if (v == P)
            {
                found=1;
            } else {
                if (v<P) {
                    st = mij;
                } else {
                    dr = mij;
                }
            }
        }

        if (found) {
            cout << mij - mij%5;
        } else {
            cout << -1;
        }
    } else {
        cout << 1;
    }

    cin.close();
    cout.close();
    return 0;
}