Pagini recente » Cod sursa (job #2143575) | Istoria paginii utilizator/georgiana1904 | Borderou de evaluare (job #1363669) | Cod sursa (job #843113) | Cod sursa (job #3301450)
#include <stdio.h>
using namespace std;
int find_5pow(int n)
{
int count = 0;
while (n > 0) {
count += n / 5;
n /= 5;
}
return count;
}
int main()
{
FILE *file_in = fopen("fact.in", "r");
FILE *file_out = fopen("fact.out", "w");
int p;
fscanf(file_in, "%d", &p);
if (p == 0) {
fprintf(file_out, "1");
return 0;
}
int l = 0, r = 5 * p, n = 0;
while (l <= r) {
int m = (l + r) / 2;
int nr = find_5pow(m);
if (nr == p) {
n = m;
r = m - 1;
} else if (nr < p) {
l = m + 1;
} else if (nr > p) {
r = m - 1;
}
}
fprintf(file_out, "%d\n", n);
}