Cod sursa(job #3282967)

Utilizator HoriaBosoancaHoria Bosoanca HoriaBosoanca Data 7 martie 2025 18:12:06
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

const int VMIN = 0;
const int VMAX = 5e8;

int nr_zero(int n) {
    int nr_0 = 0;
    while (n >= 5) {
        nr_0 += (n /= 5);
    }
    return nr_0;
}

int caut_bin(int p) {
    int st = VMIN, dr = VMAX, rez = dr+1;
    while (st <= dr) {
        int m = (st + dr) / 2;
        if(nr_zero(m) >= p) {
            rez = m;
            dr = m - 1;
        } else {
            st = m + 1;
        }
    }
    return rez;
}

int main() {
    ifstream in("fact.in");
    ofstream out("fact.out");

    int p;
    in >> p;
    if(p == 0) {
        out << 1;
        return 0;
    }
    int rez = caut_bin(p);
    if(nr_zero(rez) == p) {
        out << rez;
    } else {
        out << -1;
    }
    return 0;
}