Pagini recente » Cod sursa (job #2411739) | Cod sursa (job #675717) | Cod sursa (job #135102) | Cod sursa (job #471417) | Cod sursa (job #1076065)
#include <fstream>
using namespace std;
ifstream f ("fact.in");
ofstream g("fact.out");
int n,p,i;
int MAX = 100000000;
int caut_binar(int MAX, int p)
{
int k = 0, i, st = 1;
int m = (MAX+st)/2;
if (p == 0) return 1;
while (k != p && st != m)
{
k = 0;
i = 5;
while (i < m)
{
k += m/i;
i *= 5;
}
if (k > p) m = (st+m)/2;
if (k < p)
{
st = m;
m = (st+m)/2;
}
if (st >= m) return -1;
}
st = m;
while (k == p)
{
if (k != p) return st;
k = 0;
i = 5;
while (i <= st)
{
k += st/i;
i *= 5;
}
if (k == p) m = st;
st --;
}
return m;
}
int main ()
{
f >> p;
n = caut_binar(MAX,p);
g << n;
f.close();
g.close();
return 0;
}