Cod sursa(job #1679457)
Utilizator | Andrei mrdl aimrdl | Data | 7 aprilie 2016 23:15:40 |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.42 kb |
#include <stdio.h>
int find (int p) {
int l = 0, r = 999999999;
while (r - l > 1) {
int mid = (l + r) / 2;
int nZeros = 0, aux = mid;
while (aux) {
nZeros += aux / 5;
aux /= 5;
}
if (nZeros >= p) {
r = mid;
} else {
l = mid;
}
}
return r;
}
int main (void) {
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
int p;
scanf("%d", &p);
printf("%d", find(p));
return 0;
}