Pagini recente » Cod sursa (job #1211683) | Cod sursa (job #1391888) | Cod sursa (job #270733) | Cod sursa (job #1595722) | Cod sursa (job #801512)
Cod sursa(job #801512)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int binary_search(int lo, int hi, int x);
int count_zeros(int x);
int main()
{
int p;
fin >> p;
if (p == 0) {
fout << 1;
} else {
fout << binary_search(1, 1000000, p);
}
}
int binary_search(int lo, int hi, int x) {
while (lo < hi) {
int mid = lo + (hi - lo) / 2;
int numZeros = count_zeros(mid);
if (numZeros == x && mid % 5 == 0) {
return mid;
} else if (numZeros < x) {
lo = mid + 1;
} else {
hi = mid;
}
}
if (lo >= hi) {
return -1;
}
}
int count_zeros(int x) {
int result = 0, five = 5;
while (x / five > 0) {
result += x / five;
five *= five;
}
return result;
}