Cod sursa(job #811594)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 12 noiembrie 2012 18:23:38
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<cstdio>
long long p,l,r,m;
int ok;
long long zero(long long x)
{
    long long nr=0;
    while(x>=1) {x=x/5;nr+=x;}
    return nr;
}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%lld",&p);
    if(!p) {printf("1\n");return 0;}
    l=0;r=100000001;ok=1;
    while(l<=r&&ok)
    {
        m=(l+r)/2;
        if(zero(m)==p) {ok=0;continue;}
        if(zero(m)>p) {r=m-1;continue;}
        if(zero(m)<p) {l=m+1;continue;}
    }
    if(ok) printf("-1\n");
    else
    {
        while(m%5) m--;
        printf("%lld\n",m);
    }
    return 0;
}