Cod sursa(job #1596541)

Utilizator andreiskiorAndrei Cristian Nastase andreiskior Data 11 februarie 2016 10:09:38
Problema Factorial Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>

int zero(int n)
{
    int nr = 0;
    while(n >= 5)
    {
        nr += n / 5;
        n /= 5;
    }
    return nr;
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int p,st = 1, dr = 1 << 27,g = 1,sol = 1 << 27,m,z;
    scanf("%d",&p);
    while(st <= dr)
    {
        z = zero(m);
        m = (st + dr) / 2;
        if(zero(m) >= p)
        {
            if(m < sol && z == p)
                sol = m;
            dr = m - 1;
        }
        else
        {
            st = m + 1;
        }
    }
    if(sol == (1 << 27))
        printf("-1\n");
    else
        printf("%d\n",sol);
    return 0;
}