Pagini recente » Cod sursa (job #2213782) | Cod sursa (job #2422049) | Cod sursa (job #2356387) | Cod sursa (job #1718873) | Cod sursa (job #1471956)
#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;
int zeroes;
while (left <= right)
{
middle = left + (right - left) / 2;
zeroes = getZeroes(middle);
if (zeroes >= P)
right = middle - 1;
else
left = middle + 1;
}
if (zeroes != P)
return -1;
return middle;
}
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;
}