Cod sursa(job #3135926)

Utilizator Traian_7109Traian Mihai Danciu Traian_7109 Data 4 iunie 2023 18:24:06
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int nr0(int n)
{
    int cnt = 0;

    while (n) cnt += n/5, n /= 5;

    return cnt;
}

int main()
{
    ios_base :: sync_with_stdio(false);
    fin.tie(nullptr), fout.tie(nullptr);

    int p;
    fin>>p;

    if (p == 0) {
        fout<<1;
        return 0;
    }

    int left = 1, right = 5*p, solution = -1;

    while (left <= right) {
        int middle = (left+right)/2, nr0s = nr0(middle);

        if (nr0s == p) solution = middle, right = middle-1;
        else if (nr0s < p) left = middle+1;
        else right = middle-1;
    }

    fout<<solution;
    return 0;
}