Pagini recente » Cod sursa (job #1633158) | Cod sursa (job #705584) | Cod sursa (job #270531) | Cod sursa (job #753984) | Cod sursa (job #432431)
Cod sursa(job #432431)
#include <stdio.h>
long long nz(long long n){
return n/5+n/25+n/125+n/625+n/3125+n/15625+n/78125+n/390625+n/1953125+n/9765625+n/48828125+n/244140625;
}
int main (){
long long p, t, st, dr, m, gasit=0;
FILE *f=fopen("fact.in", "r");
fscanf(f, "%lld", &p);
fclose(f);
st=0; dr=1000000000;
while (st<dr && !gasit) {
m = st + (dr - st) / 2;
t = nz(m);
if (t == p) {
gasit = 1;
break;
}
else if (t < p) st = m + 1;
else dr = m - 1 ;
}
FILE *g=fopen("fact.out", "w");
if (!gasit) fprintf(g, "-1\n");
else {
while (nz(m-1) == p) m--;
fprintf(g, "%lld\n", m);
}
fclose(g);
//printf("%lld\n", m);fflush(stdin); getchar();
return 0;
}