Cod sursa(job #897863)

Utilizator DemnokStefan Demnok Data 27 februarie 2013 22:45:46
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>
long long st=1,dr=2000000000,p;
long long putere(long long a);
int main ()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%lld",&p);
    if(p==0)
    {
        printf("1");
        return 0;
    }

    while (st<dr)
    {
        long long mij=(st+dr)/2;
        long long n=putere(mij);
        if(p<=n) dr=mij;
        else st=mij+1;
    }
    if(putere(st)==p) printf("%lld",st);
    else printf("-1");
    return 0;
}
long long putere(long long a)
{
    long long c=0;
    for (long long i=5;i<=a;i*=5)
        c+=a/i;
    return c;
}