Cod sursa(job #173894)
Utilizator | Data | 8 aprilie 2008 11:42:47 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.41 kb |
#include <cstdio>
int ls,ld,mij,p,n=-1,i,k;
int main(){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
ls=1;ld=1<<30;
while (ls<=ld){
mij=(ls+ld)/2;
for (i=5,k=0;i<=mij;i*=5) k+=(mij/i);
if (k==p) n=mij;
if (k>=p) ld=mij-1;
else ls=mij+1;
}
printf("%d",n);
return 0;
}