Cod sursa(job #2620519)

Utilizator CoakazeRotaru Catalin Coakaze Data 28 mai 2020 23:20:28
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;

int cifre0(int n)
{
    int nr = 0;
    for (int i=5; n/i>=1; i*=5)
        nr += n / i;
    return nr;
}

int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");
    int p, ok = 0;
    f>>p;
    if(p == 0)
        g<<1;
    else
    {
        int st = 0, dr = INT_MAX;
        while(ok == 0 && st <= dr)
        {
            int m = (st + dr) / 2;
            int z = cifre0(m);
            if(z == p)
            {
                g<<m / 5 * 5;
                ok = 1;
            }
            else if(cifre0(m) > p)
                dr = m - 1;
            else
                st = m + 1;
        }
        if(ok == 0)
            g<<-1;
        f.close();
        g.close();
    }
    return 0;
}