Cod sursa(job #1675392)
| Utilizator | Data | 5 aprilie 2016 12:05:08 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
# include <iostream>
# include <fstream>
std::ifstream cin ("fact.in");
std::ofstream cout ("fact.out");
int p;
/* numarul de zerouri continute de n! */
int number_zero (int n) {
int p = 5, res = 0;
while (p <= n) {
res = res + n / p;
p = p * 5;
}
return res;
}
int cautare (int ls, int ld) {
if (ls > ld)
return ls;
int m = ls - (ls - ld) / 2;
if (number_zero (m) < p)
return cautare (m + 1, ld);
else
return cautare (ls, m - 1);
}
int main (void) {
cin >> p;
cout << cautare (1, 5 * p);
return 0;
}