Pagini recente » Cod sursa (job #3250845) | Cod sursa (job #2620866) | Cod sursa (job #794925) | Cod sursa (job #3202643) | Cod sursa (job #28645)
Cod sursa(job #28645)
#include <stdio.h>
#define FIN "fact.in"
#define FOUT "fact.out"
long P, k;
long long v, N, st, dr, m;
long long f(long long x) {
long long p, val=0;
for (p=5; x>p; p*=5)
val += x/p;
return val;
}
int main() {
freopen(FIN, "r", stdin);
scanf("%ld", &P);
fclose(stdin);
st = 0; dr = 0x3f3f3f3f3f3fll;
while (st<dr) {
m = (st+dr) / 2;
v = f(m);
if ( v==P )
st = dr +1;
if ( v<P )
st = m+1;
if ( v > P )
dr = m-1;
}
if ( f(m) != P )
N = -1;
else {
N = m/5;
N *= 5;
}
if ( P==0 )
N = 1;
freopen(FOUT, "w", stdout);
printf("%lld\n", (N>0)?N : -1);
fclose(stdout);
return 0;
}