Pagini recente » Cod sursa (job #3281422) | Cod sursa (job #3205916) | Cod sursa (job #2623538) | Cod sursa (job #1952957) | Cod sursa (job #84199)
Cod sursa(job #84199)
#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==1){printf("5\n");return 0;}
unsigned long long a=0,b=100000001, 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;}
}
//int k=3;
//
//while(k){
//c=(a+b)/2;
//aux=ndz(c);
//if(aux<p){a=c+1;k-=(p-aux==1);}
//else if(aux>p){b=c-1;k-=(aux-p==1);}
//else if(aux==p){printf("%lld\n",c);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;
}