Pagini recente » Cod sursa (job #2486819) | Cod sursa (job #488700) | Cod sursa (job #1578649) | Cod sursa (job #481436) | Cod sursa (job #29241)
Cod sursa(job #29241)
#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);
if ( N>0 )
printf("%lld\n",N);
if ( N==0 )
printf("1\n");
if ( N<0 )
printf("-1\n");
fclose(stdout);
return 0;
}