Pagini recente » Cod sursa (job #1802872) | Cod sursa (job #1464955) | Cod sursa (job #2193425) | Cod sursa (job #2676997) | Cod sursa (job #1471963)
#include <fstream>
using namespace std;
int getZeroes(int N)
{
int result = 0, powerOf5 = 5, zeroes;
do
{
zeroes = N / powerOf5;
powerOf5 *= 5;
result += zeroes;
} while (zeroes);
return result;
}
int binarySearch(int left, int right, int P)
{
int middle = -1, zeroes = -1;
while (left < right - 1)
{
middle = left + (right - left) / 2;
zeroes = getZeroes(middle);
if (zeroes >= P)
right = middle;
else
left = middle;
}
if (zeroes != P)
return -1;
return right;
}
int main()
{
int P;
ifstream f("fact.in");
f >> P;
f.close();
ofstream g("fact.out");
if (P == 0)
g << 1;
else
g << binarySearch(0, P * 5, P);
g.close();
return 0;
}