Pagini recente » Cod sursa (job #3263920) | Cod sursa (job #577266) | Cod sursa (job #615602) | Cod sursa (job #547471) | Cod sursa (job #2177407)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
typedef long long int lint;
lint n, m, t, p5, s, result;
ifstream fin("fact.in");
ofstream fout("fact.out");
void BinarySearch(lint a, lint b) {
if (a > b) return;
else {
s = 0;
m = a + (b - a) / 2;
t = m;
p5 = 5;
while (t / p5 > 0) {
s = s + (t / p5);
p5 *= 5;
}
if (s == n) {
result = m;
BinarySearch(a, m - 1);
}
else {
if (s > n) {
BinarySearch(a, m - 1);
} else {
BinarySearch(m + 1, b);
}
}
}
}
int main()
{
fin >> n;
if (n == 0) {
fout << 1;
return 0;
}
BinarySearch(0, INT_MAX);
if (result == 0) fout << -1;
else fout << result;
return 0;
}