Pagini recente » Cod sursa (job #383647) | Cod sursa (job #1104391) | Cod sursa (job #2732725) | Cod sursa (job #1196297) | Cod sursa (job #1710819)
#include <fstream>
using namespace std;
#define MAX 2000000000
ifstream f{ "fact.in" };
ofstream q{ "fact.out" };
int pow5(int a) {
int nr = 0;
int h = 5;
while (h < a) {
nr += a / h;
h *= 5;
}
return nr;
}
int Fact(int p) {
int a = 0, b = MAX, mid, t;
while (true) {
mid = (a + b) / 2;
t = pow5(mid);
if (t == p) break;
else if (t > p) b = mid - 1;
else a = mid + 1;
}
if (mid % 10 > 5) mid -= (mid % 10 - 5);
else if (mid % 10 < 5) mid -= (mid % 10);
return mid;
}
int main() {
int p;
f >> p;
if (p == 0) q << "1";
else q << Fact(p);
f.close();
q.close();
return 0;
}