Pagini recente » Cod sursa (job #748565) | Cod sursa (job #2161254) | Cod sursa (job #106435) | Cod sursa (job #2900920) | Cod sursa (job #311760)
Cod sursa(job #311760)
#include<stdio.h>
long long b[15],i,p,q,nr,ok,mij,k,x;
long long z(long long a)
{ long long k=0;
while(a) k+=a/5,a/=5;
return k;
}
int main()
{ freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&nr);
if(nr==0) { printf("1\n");
fclose(stdin);
fclose(stdout);
return 0;
}
b[1]=5;
for(i=2;i<=14;i++) b[i]=5*b[i-1];
p=1;
q=40*nr;
while(!ok&&p<=q) { mij=(p+q)/2;
k=z(mij,1);
if(nr==k) ok=1;
else if(nr<k)q=mij-1;
else if(nr>k)p=mij+1;
}
while(mij%5!=0) --mij;
if(z(mij,1)==nr) printf("%lld\n",mij);
else printf("-1\n");
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}