Cod sursa(job #402705)
Utilizator | Data | 24 februarie 2010 08:35:33 | |
---|---|---|---|
Problema | Factorial | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <stdio.h>
int main()
{
long long s,m;
long a=0,b=500000000,x=250000000,p;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%ld",&p);
int y=0;
while(a<b-1){
s=0;
m=5;
while(m<=x){
s=s+x/m;
m=m*5;
}
if(s>p){
b=x;
x=(a+b)/2;
}
if(s<p){
a=x;
x=(a+b)/2;
}
if(s==p){
y=1;
break;
}
}
if(y==1){
printf("%ld",x-x%5);
}else{
printf("-1");
}
return 0;
}