Cod sursa(job #2110793)
Utilizator | Data | 21 ianuarie 2018 13:02:26 | |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
using namespace std;
int nrz(long long x) {
int put5 = 5, sol = 0;
while (put5 <= x) {
sol += x / put5;
put5 *= 5;
}
return sol;
}
long long cautbin(int p) {
long long st, dr, z, sol, mij;
st = 1;
dr = 200000000000LL;
while (st <= dr) {
mij = (st + dr) / 2;
z = nrz(mij);
if (z >= p) {
sol = mij;
dr = mij - 1;
}
else
st = mij + 1;
}
return sol;
}
int main() {
ifstream cin ("fact.in");
ofstream cout ("fact.out");
int p;
cin >> p;
cout << cautbin(p);
return 0;
}