Cod sursa(job #542484)
| Utilizator | Data | 26 februarie 2011 14:12:19 | |
|---|---|---|---|
| Problema | Factorial | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 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;
N = -1;
st = 0;
dr = 10000000;
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;
}
if (N != -1) {
for (; NRz(N) == P; --N) ;
++ N;
}
g << N << '\n';
g.close ();
return 0;
}
