Cod sursa(job #198832)

Utilizator free2infiltrateNezbeda Harald free2infiltrate Data 15 iulie 2008 12:19:39
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>

int f(int n)
{
         if (n==0) return 0;
         else return n/5 + f(n/5);
}

int caut(int  x)
{
    long long l,r,mid;
    for (l=1,r=1000000000000LL;l<=r;) 
    {
        mid = (l+r) / 2;
        if (f(mid)<x) l = mid+1;
        else if (f(mid)>x) r = mid-1 ;
        else return mid;
    }
return -1;
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    long  x;
    scanf("%ld",&x);
    x = caut(x);
    if (x!=-1) for (;x%5;x--); 
    if (x)printf("%ld",x);
    else printf("%ld",1);
}