Cod sursa(job #2892983)

Utilizator tib23Bacain Octavian-Tiberiu tib23 Data 24 aprilie 2022 13:08:42
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

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

int n;

int pow5(int m);
int cb(int n);

int main()
{
	fin >> n;
	if(n == 0)
		fout << 1;
    else
    {
        int m = cb(n);
        if (pow5(m) != n)
        {
            m = -1;
        }
        fout << m;
    }
    return 0;
}

int pow5(int m)
{
    int c = 0;
    while(m)
    {
        c += m / 5;
        m /= 5;
    }
    return c;
}

int cb(int n)
{
    int st = 1, dr = 1e9, rez = dr + 1;
    int mij;
    while (st <= dr)
    {
        mij = (st + dr) / 2;
        if (pow5(mij) >= n)
        {
            rez = mij;
            dr = mij - 1;
        }
        else
        {
            st = mij + 1;
        }
    }
    return rez;
}