Pagini recente » Cod sursa (job #2764646) | Cod sursa (job #2986548) | Cod sursa (job #231495) | Cod sursa (job #2771331) | Cod sursa (job #2077413)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int f(int nr)
{
int put5 = 5,k = 0;
while (nr / put5 >= 1)
{
k += nr / put5;
put5 *= 5;
}
return k;
}
int caut_bin(int p)
{
int a = 1,b = pow(10,8) + 1,sol = -1;
int mij;
while (a <= b)
{
mij = (a + b) / 2;
int pos = f(mij);
if (pos > p)
b = mij - 1;
else if (pos == p)
{
sol = mij;
b = mij - 1;
}
else
a = mij + 1;
}
return sol;
}
int r,p,pas,lim = pow(10,8);
int main()
{
in>>p;
r = caut_bin(p);
// pas = 1 << 20;
//while (pas != 0)
// {if (r + pas <= lim && fct(r + pas) == p)
// r += pas;
// pas >>= 1;}
//if (r == 0)
// out<<-1;
//else
out<<r;
// out<<fct(p);
return 0;
}