Cod sursa(job #631312)
| Utilizator | Data | 7 noiembrie 2011 19:43:47 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
int P;
int nr_zeros(int N) {
long long ret = 0;
for (long long p = 5; p <= N; p = p * 5) {
ret = ret + N / p;
}
return ret;
}
int main() {
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
scanf("%d ", &P);
int st = 1, dr = P * 15;
while (st < dr - 1) {
int mid = st + (dr - st + 1) / 2;
if (nr_zeros(mid) >= P) {
dr = mid;
} else {
st = mid;
}
}
if (nr_zeros(st) < P) {
printf("%d ", dr);
} else {
printf("%d ", st);
}
return 0;
}
