Cod sursa(job #2815767)

Utilizator guzgandemunteIonescu Laura guzgandemunte Data 10 decembrie 2021 11:27:42
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#define PMAX 100000000 // 10^8
#define UPPER_BOUND 400000015

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

int sum(int n) {
    int p = 5, res = 0;
    while (p <= n) {
        res += n / p;
        p *= 5;
    }
    return res;
}
int main()
{
    int x;
    fin >> x;
    if (x == 0) {
        fout << 1;
        return 0;
    }

    int crt, middle, ans = -1, st = 0, dr = 5 * x;

    while (st <= dr) {
        middle = st + ((dr - st) >> 1);
        crt = sum(middle);
        if (crt < x) st = middle + 1;
        else {
            ans = middle;
            dr = middle - 1;
        }
    }

    fout << ans;
}