Cod sursa(job #517957)

Utilizator Athena99Anghel Anca Athena99 Data 30 decembrie 2010 11:53:56
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>

long long f(long long p)
{
    long long c=1,stop=5*p,u=0,aux=0,start=0,zero=0;
    while (start<stop)
    {
        zero=0;
        aux=(stop+start)/2;
        c=1;
        while(c<=aux)
        {
            c*=5;
            zero=zero+aux/c;
        }
        if (zero==p) {u=aux-aux%5; break;}
        else if (zero<p) start=aux+1;
        else stop=aux-1;
    }
    if (u==0) u=-1;
    return u;
}

int main()
{
    long long p=0;
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%lld",&p);
    if (p==0) printf("1");
    else if (p==1) printf("5");
    else if (p==5) printf("-1");
    else printf("%lld",f(p));
    return 0;
}