Pagini recente » Cod sursa (job #731626) | Cod sursa (job #1601830) | Cod sursa (job #1488764) | Cod sursa (job #2620846) | Cod sursa (job #1891292)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int main()
{
int l = 1, nr0, nr1, nr2, x, r = 1000000000, middle;
fin >> p;
while(l <= r)
{
middle = l + (r - l) / 2;
nr0 = 0;
x = middle;
while(x >= 5)
{
nr0 += x / 5;
x /= 5;
}
if(nr0 >= p)
{
r = middle - 1;
}
if(nr0 < p)
{
l = middle + 1;
}
}
x = middle;
nr0 = 0;
while(x >= 5)
{
nr0 += x / 5;
x /= 5;
}
x = middle + 1;
while(x >= 5)
{
nr2 += x / 5;
x /= 5;
}
x = middle - 1;
while(x >= 5)
{
nr1 += x / 5;
x /= 5;
}
if(nr1 != p && nr0 != p && nr2 != p)
{
middle = -1;
}
else if(middle == 1)
{
middle = middle;
}
else if(nr1 == p)
{
middle--;
}
else if(nr2 == p && nr0 != p)
{
middle++;
}
fout << middle;
return 0;
}