Cod sursa(job #3231757)

Utilizator Tibi_21Neagoie Nicholas-Tiberiu Tibi_21 Data 27 mai 2024 17:48:50
Problema Factorial Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>

using namespace std;

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

const int NMAX = 1e8;

int nr_0(int m)
{
    long long p5=5,cnt=0;
    while(p5<=m)
    {
        cnt+=m/p5;
        p5*=5;
    }
    return cnt;
}

int Factorial(int P)
{
    int st = 1, dr = NMAX, rez = -1;
    while(st <= dr)
    {
        int m = (st+dr)/2;
        if(nr_0(m) == P)
            rez = m, dr = m-1;
        if(nr_0(m) < P)
            st = m+1;
        if(nr_0(m) > P)
            dr = m-1;
    }
    return rez;
}

int main()
{
    int P;
    fin >> P;
    fout << Factorial(P) << "\n";
}