Cod sursa(job #526026)
Utilizator | Contrapunct ContraPunct | Data | 27 ianuarie 2011 01:22:39 |
---|---|---|---|
Problema | Factorial | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<cstdio>
using namespace std;
long long p,st,dr,mij,fmij;
long long Nr_zero(int a){
long long nr =0,q=5;
while((a/q)!=0) {
nr=nr+a/q;
q=q*5;
}
return nr;
}
int main(){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&p);
st=1;
dr=5*p;
while(st<=dr){
mij=(st+dr)/2;
fmij=Nr_zero(mij);
if(p<fmij)
dr=mij-1;
else
if(p>fmij)
st=mij+1;
else
{
printf("%lld\n",mij);
return 0;
}
}
printf("-1\n");
return 0;
}