Pagini recente » Cod sursa (job #262324) | Cod sursa (job #176000) | Cod sursa (job #1706694) | Cod sursa (job #1915405) | Cod sursa (job #1710824)
#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 (a < b) {
mid = (a + b) / 2;
t = pow5(mid);
if (t == p) break;
else if (t > p) b = mid - 1;
else a = mid + 1;
}
if (a > b) mid = -1;
if (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)<<" "<<pow5(MAX);
f.close();
q.close();
return 0;
}