Cod sursa(job #2296037)

Utilizator cahemanCasian Patrascanu caheman Data 4 decembrie 2018 10:32:07
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<cstdio>

using namespace std;

int solve(int val)
{
    int cval, nr;
    cval = val;
    nr = 0;
    while(cval)
    {
        nr += cval / 5;
        cval /= 5;
    }
    return nr;
}

int cautbin(int valmax, int nrcaut)
{
    int st, dr, med, last = 1;
    st = 1;
    dr = valmax;
    while(st <= dr)
    {
        med = (st + dr) / 2;
        if(solve(med) == nrcaut)
            return med;
        else
        {
            if(solve(med) < nrcaut)
                st = med + 1;
            else
                dr = med - 1;
        }
    }
    return last;
}

int main()
{
    freopen("fact.in", "r", stdout);
    freopen("fact.out", "w", stdout);
    int p, rez;
    scanf("%d", &p);
    rez = cautbin(5 * p, p);
    rez = rez - rez % 5;
    printf("%d", rez);
    return 0;
}