Cod sursa(job #517863)

Utilizator Athena99Anghel Anca Athena99 Data 30 decembrie 2010 00:30:50
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

long long f(long long p)
{
    long long stop=10*p,u=0,aux=0,start=0,zero=0;
    while (start<stop)
    {
        aux=(stop+start)/2;
        zero=aux/5+aux/25+aux/125+aux/625+aux/3125+aux/15625+aux/78125+aux/390625;
        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==5) printf("-1");
    else printf("%lld",f(p));
    return 0;
}