Cod sursa(job #1888928)

Utilizator mesbotMeszaros Botond mesbot Data 22 februarie 2017 13:48:58
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

long p, n, nup = -1, ndown;

bool fact(long num)
{
    n = 0;
    while(num != 0)
        num /= 5, n += num;

    return (n >= p);
}

void search_min()
{
    if(ndown < nup)
        if(fact((ndown + nup)/2))
            nup = (ndown + nup)/2, search_min();
}

int main()
{
    std::ifstream f("fact.in");
    std::ofstream g("fact.out");

    f>>p;

    if(p == 0) nup = 1;

    else if(p >= 0)
        ndown = p*4, nup = p*5, search_min();

    while(fact(nup-1))
        nup--;

    if(!fact(nup))
        g<<-1;
    else
        g<<nup<<"\n";

    return 0;
}