Pagini recente » Borderou de evaluare (job #3367021) | Cod sursa (job #3365376) | Cod sursa (job #3365816) | Cod sursa (job #3367020) | Cod sursa (job #3367021)
#include <stdio.h>
int main() {
FILE *fin, *fout;
int p, stg, drg, sol, mij, count, temp;
int final_count, temp_sol, ans;
fin = fopen("fact.in", "r");
fscanf(fin, "%d", &p);
fclose(fin);
fout = fopen("fact.out", "w");
if (p == 0) {
fprintf(fout, "1\n");
} else {
stg = 1;
drg = 5 * p;
sol = stg - 1;
while (stg <= drg) {
mij = (stg + drg) / 2;
count = 0;
temp = mij;
while (temp > 0) {
count += temp / 5;
temp /= 5;
}
if (count < p) {
sol = mij;
stg = mij + 1;
} else {
drg = mij - 1;
}
}
ans = sol + 1;
final_count = 0;
temp_sol = ans;
while (temp_sol > 0) {
final_count += temp_sol / 5;
temp_sol /= 5;
}
if (final_count == p) {
fprintf(fout, "%d\n", ans);
} else {
fprintf(fout, "-1\n");
}
}
fclose(fout);
return 0;
}