Pagini recente » Cod sursa (job #3142280) | Cod sursa (job #821744) | Cod sursa (job #362684) | Cod sursa (job #143354) | Cod sursa (job #311215)
Cod sursa(job #311215)
#include<stdio.h>
long long b[13],i,p,q,nr,ok,mij,k,x;
long long z(long long a,long long i1)
{ if(b[i1]<a) return a/b[i1]+ z(a,i1+1);
else return 0;
}
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<=12;i++) b[i]=5*b[i-1];
p=1;
q=100000000;
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;
k=z(mij,1);
if(k==nr) printf("%lld\n",mij);
else printf("-1\n");
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}