Pagini recente » Cod sursa (job #2331027) | Cod sursa (job #1527648) | Cod sursa (job #1246563) | Cod sursa (job #2936728) | Cod sursa (job #1710830)
#include <fstream>
using namespace std;
#define MAX 3000000000
ifstream f{ "fact.in" };
ofstream q{ "fact.out" };
long long pow5(long long a) {
long long nr = 0;
long long h = 5;
while (h < a) {
nr += a / h;
h *= 5;
}
return nr;
}
long long Fact(long long p) {
long long 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() {
long long p;
f >> p;
if (p == 0) q << 1;
else q << Fact(p);
f.close();
q.close();
return 0;
}