Cod sursa(job #542593)
| Utilizator | Data | 26 februarie 2011 16:32:14 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
# include <fstream>
using namespace std;
ifstream f ( "fact.in" );
ofstream g ( "fact.out" );
int P, N;
int NRz (int x) {
int nr = 0;
while (x) {nr += x / 5; x /= 5;}
return nr;
}
int main () {
f >> P;
int st, dr, mij;
if (!P) {g << "1\n"; return 0;}
N = -1;
st = 0;
dr = 1000000000;
while (st <= dr) {
mij = (st + dr) / 2;
if (NRz(mij) == P) {N = mij; break;}
else
if (NRz(mij) < P) st = mij + 1;
else dr = mij - 1;
}
g << N - (N % 5) << '\n';
g.close ();
return 0;
}
