Cod sursa(job #2330872)

Utilizator radu_mihai007UPB Diaconu Radu Mihai radu_mihai007 Data 28 ianuarie 2019 21:32:15
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <cmath>
using namespace std;
unsigned long long nrz(unsigned long long n);
unsigned long long mijl, maxx, minn = 0, gasit = 0, n, nr;
int main() {
    ifstream ifs("fact.in");
    ofstream ofs("fact.out");
    ifs >> n;
    maxx = 5 * n;
    while (minn <=maxx && !gasit)
    {
        mijl = (minn + maxx) / 2;
        nr = nrz(mijl);
        if (nr == n)
            gasit = 1;
        if (nr > n)
            maxx = mijl - 1;
        else
            minn = mijl + 1;
    }
    if (gasit == 0)
        ofs << "-1";
    else
    {
        if (n == 0) ofs << 1;
        else
            ofs << mijl / 5 * 5;
    }
    return 0;
}
unsigned long long nrz(unsigned long long n) {
    unsigned  long long num = 0, mod = 5;
    while (n / mod != 0) {
        num = num + n / mod;
        mod = mod * 5;
    }
    return num;
}