Cod sursa(job #1919731)

Utilizator maria_sinteaMaria Sintea maria_sintea Data 9 martie 2017 20:49:01
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <cstdio>

using namespace std;

long long n, nr=-1, i, m, s=1, d, nr0;
int fr[22]={0, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140725, 1220703125};

int main()
{
    freopen("fact.in", "r", stdin);
    freopen("fact.out", "w", stdout);

    scanf("%lld", &n);
    if(n==0)
    {
        printf("1");
        return 0;
    }
    else
    {
        d=n*5;
        while(s<=d)
        {
            m=(s+d)/2;
            nr0=0;
            for(i=1;fr[i]<=m;i++)
            {
                nr0+=m/fr[i];
            }
            if(nr0==n)
            {
                nr=m;
                d=m-1;
            }
            else
                if(nr0>n)
                    d=m-1;
            else
                s=m+1;
        }
        printf("%lld", nr);
    }
    return 0;
}