Cod sursa(job #2758247)

Utilizator IvanAndreiIvan Andrei IvanAndrei Data 9 iunie 2021 10:47:45
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int p;

int nr_0(int n)
{
    int nr = 0;
    while (n >= 5)
    {
        nr += n / 5;
        n /= 5;
    }
    return nr;
}
int caut_n(int p)
{
    int st = 1, dr = 5e8, rez = dr;
    while (st <= dr)
    {
        int mij = (st + dr) / 2;
        if (nr_0(mij) >= p)
        {
            rez = mij;
            dr = mij - 1;
        }
        else
        {
            st = mij + 1;
        }
    }
    return rez;
}
int main()
{
    in >> p;
    if (nr_0(caut_n(p)) > p)
    {
        out << "-1";
    }
    else if (nr_0(caut_n(p)) < p)
    {
        out << "-1";
    }
    else
    {
        out << caut_n(p);
    }
    return 0;
}