Pagini recente » Cod sursa (job #2544897) | Monitorul de evaluare | Cod sursa (job #477576) | Cod sursa (job #1874175) | Cod sursa (job #84313)
Cod sursa(job #84313)
#include<cstdlib>
#include<string>
unsigned long long ndz(unsigned long long x);
unsigned long long p;
int main(){
freopen("fact.in","r",stdin);freopen("fact.out","w",stdout);
scanf("%lld",&p);
if(p==0){printf("1\n");return 0;}
if(p==1){printf("5\n");return 0;}
unsigned long long a=0,b=10000000001LL, c, aux;
while(b-a>1){
c=(a+b)/2;
aux=ndz(c);
if(aux<p) a=c+1;
else if(aux>p) b=c-1;
else if(aux==p){printf("%lld\n",c/5*5);return 0;}
}
printf("-1\n");
return 0;
}
unsigned long long ndz(unsigned long long x){
long nr=0;
while(x>=5){x/=5;nr+=x;}
return nr;
}