Pagini recente » Cod sursa (job #2948901) | Cod sursa (job #1143062) | Cod sursa (job #245677) | Cod sursa (job #1281117) | Cod sursa (job #3238144)
#include <fstream>
using namespace std;
const int VMIN = 1;
const int VMAX = 5e8;
int nr_zero(int n)
{
int nr = 0;
while (n >= 5)
{
nr += n / 5;
n /= 5;
}
return nr;
}
int caut_bin(int p)
{
///cautam binar cel mai mic numar alcarui factorial are cel putin p zerouri la final
int st = VMIN, dr = VMAX, rez = VMAX + 1;
while (st <= dr)
{
int m = (st + dr) / 2;
if (nr_zero(m) >= p)
{
rez = m;
dr = m - 1;
}
else
{
st = m + 1;
}
}
return rez;
}
int main()
{
ifstream in("fact.in");
ofstream out("fact.out");
int p;
in >> p;
int n_0 = caut_bin(p);
if (nr_zero(n_0) > p)
{
n_0 = -1;
}
out << n_0 << "\n";
in.close();
out.close();
return 0;
}