Cod sursa(job #858167)
| Utilizator | Data | 18 ianuarie 2013 17:20:56 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#include<stdio.h>
long v[1000000];
long val(long a)
{
long s=0;
while(a>0)
{
s+=a/5;
a/=5;
}
return s;
}
long cauta(int a,int b,int n)
{
long c,t;
c=(a+b)/2;
t=val(c);
if(a==b && t==n ) return b;
if(a==b) return -1;
if(t>=n) return cauta(a,c,n);
else return cauta(c+1,b,n);
}
int main()
{
freopen("fact.in","rt",stdin);
freopen("fact.out","wt",stdout);
long N;
scanf("%ld",&N);
printf("%ld",cauta(1,500000000,N));
return 0;
}
