Cod sursa(job #3296091)

Utilizator fantomcristi fantom Data 11 mai 2025 12:37:33
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <vector>
#include <algorithm>
#include <fstream>
#include <iostream>
using namespace std;
//ifstream cin("fact.in");
//ofstream cout("fact.out");
int NrDeZerouri(int Numar) {
    int nrDeZerouri = 0;
    while (Numar >= 5) {
        nrDeZerouri += Numar / 5;
        Numar /= 5;
    }
    return nrDeZerouri;
}
int main() {
    int p;
    cin >> p;
    if (p == 0) {
        cout << 1;
        return 0;
    }
    int stanga = 1, dreapta = 5 * p, rezultat = -1;
    while (stanga <= dreapta) {
        int mijloc = stanga + (dreapta - stanga) / 2;
        int zerouri = NrDeZerouri(mijloc);
        if (zerouri > p) {
            dreapta = mijloc - 1;
        }
        else if (zerouri < p) {
            stanga = mijloc + 1;
        }
        else {
            rezultat = mijloc;
            dreapta = mijloc - 1;
        }
    }
    cout << rezultat;
    return 0;
}