Cod sursa(job #2961428)

Utilizator gripzStroescu Matei Alexandru gripz Data 6 ianuarie 2023 14:55:02
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>

using namespace std;

int cnt5(int N) {
    int s = 0;
    while(N >= 5) {
        s += N / 5;
        N /= 5;
    }

    return s;
}

int solve(int P) {
    int st = 1, dr = 1e9, mid, last, last_ans;
    while (st <= dr) {
        mid = (st + dr) / 2;
        int ans = cnt5(mid);
        if(ans < P) {
            st = mid + 1;
        } else {
            dr = mid - 1;
            last_ans = ans;
            last = mid;
        }
    }

    if(last_ans != P) {
        return -1;
    }

    return last;
}

int main()
{
    freopen("fact.in", "r", stdin);
    freopen("fact.out", "w", stdout);

    int P;
    cin >> P;

    cout << solve(P);

    return 0;
}