Pagini recente » Cod sursa (job #1916871) | Cod sursa (job #2106847) | Cod sursa (job #1286397) | Cod sursa (job #598919) | Cod sursa (job #432433)
Cod sursa(job #432433)
#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"), *g;
fscanf(f, "%lld", &p);
fclose(f);
if( p==0) {
g=fopen("fact.out", "w");
fprintf("0\n");
fclose(g);
return 0;
}
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 ;
}
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;
}