Cod sursa(job #247974)
| Utilizator | Data | 24 ianuarie 2009 17:01:21 | |
|---|---|---|---|
| Problema | Factorial | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
//#include<algorithm>
//using namespace std;
#include<stdio.h>
int p;
void solve(){
int i,st,dr,x,m,k,ok;
scanf("%d",&p);
if(!p)
printf("1");
else{
for(st=1,dr=30000,ok=0; st<=dr; ){
m=(st+dr)/2;
for(x=m,k=0; x; k+=x/=5);
if(k>p)
dr=m-1;
else
st=m+1;
if(k==p)
ok=1;}
if(ok)
printf("%d",st-5);
else
printf("-1");}}
int main(){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
solve();
return 0;}
