Cod sursa(job #93316)
| Utilizator | Data | 18 octombrie 2007 15:20:22 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.38 kb |
# include <stdio.h>
int f(int n){
int c=0;
while(n){
c+=n/5;
n/=5;
}
return c;
}
int main (){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
long s,d,m;
scanf("%d",&p);
s=1;
d=800000000;
while(s!=d){
m=(s+d)/2;
if(f(m)<p)
s=m+1;
else
d=m;
}
if(p==f(s))
printf("%ld",s);
else
printf("-1");
return 0;
}
