Cod sursa(job #1679459)
Utilizator | Andrei mrdl aimrdl | Data | 7 aprilie 2016 23:17:04 |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <stdio.h>
long long find (int p) {
long long l = 0, r = 999999999;
while (r - l > 1) {
long long mid = (l + r) / 2;
long long 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("%lld", find(p));
return 0;
}