Cod sursa(job #2641924)

Utilizator luiz_felipeLuiz Felipe luiz_felipe Data 13 august 2020 02:37:37
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int fct(int x)
{
    int a = 5, rez = 0;
    while (x / a) {rez +=x / a;a *= 5;}
    return rez;
}
int main()
{
    int p, val;
    f >> p;
    if (!p) g << 1;
    else
    {
        int mini = 1, maxi = 1000000000, mid;
        bool ok = false;
        while (mini <= maxi && !ok)
        {
            mid = (mini + maxi) / 2;
            val = fct(mid);
            if (val < p) mini = mid + 1;
            else if (val > p) maxi = mid - 1;
            else ok = true;
        }
        if (ok)
        {
            while (mid % 5) mid--;
            g << mid;
        }
        else g << -1;
    }
}