Pagini recente » Cod sursa (job #1078622) | Cod sursa (job #2676258) | Cod sursa (job #2038390) | Cod sursa (job #2437308) | Cod sursa (job #73286)
Cod sursa(job #73286)
#include<stdio.h>
FILE *f=fopen("fact.in","r"),
*g=fopen("fact.out","w");
long long p,n,i,v,m,ok,fl,fr;
long long zero(long long n)
{ long long q=5,k=0;
while(q<n) { k+=n/q;
q*=5;
}
return k;
}
int caut(long long k)
{ while(k%5) k--;
return k;
}
int main()
{ fscanf(f,"%lld",&p);
n=2000000000;
long long left=1,right=n;
ok=1;
while(left<right&&ok==1){
m=(left+right)>>1;v=zero(m);
if(v==p) n=caut(m),ok=0;
else if(v>p) right=m;
else left=m;
if(fl==left&&fr==right&&ok) ok=2;
fl=left;
fr=right;
}
if(!ok)fprintf(g,"%lld\n",n);
else fprintf(g,"-1\n");
fclose(f);
fclose(g);
return 0;
}