Cod sursa(job #1794921)

Utilizator crazylamaRiclea Andrei crazylama Data 1 noiembrie 2016 20:37:44
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define MAX 1 << 31
using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");

unsigned int nrZero(unsigned int n)
{
    if (n < 5)
        return 0;
    return n / 5 + nrZero(n / 5);
}

int CautareBinara(unsigned int n)
{
    unsigned int st = 1, dr = MAX;
    while (st < dr)
    {
        int mij = st + (dr - st) / 2;
        unsigned int _nrZero = nrZero(mij);
        if (_nrZero == n)
            return mij;
        else if (_nrZero > n)
            dr = mij - 1;
        else
            st = mij + 1;
    }
    return -1;
}

int main()
{
    unsigned int n;
    f >> n;
    int rez = CautareBinara(n);
    while (rez % 5 != 0 && rez != 1 && rez != -1)
        --rez;
    g << rez;
    return 0;
}