Pagini recente » Cod sursa (job #2069171) | Cod sursa (job #1195724) | Cod sursa (job #1650026) | Cod sursa (job #2913727) | Cod sursa (job #1477268)
#include<stdio.h>
long put5[13];
long p;
long suma(long n) {
int i;
long val = 0;
for(i=1; i<13; i++) {
val = val + n/put5[i];
}
return val;
}
long cauta(long l, long h) {
if((h - l) == 1) {
return h;
} else {
long m = (l + h)/2;
long s = suma(m);
if(s < p) {
return cauta(m, h);
} else {
return cauta(l,m);
}
}
}
int main() {
FILE* fin = fopen("fact.in", "r");
fscanf(fin, "%ld\n", &p);
fclose(fin);
put5[0] = 1;
int i;
for(i=1; i<13; i++) {
put5[i] = put5[i-1] * 5;
}
long res;
if(p==0) {
res = 0;
} else {
res = cauta(1, p * 5);
}
FILE* fout = fopen("fact.out", "w");
fprintf(fout,"%ld\n", res);
fclose(fout);
return 0;
}