Pagini recente » Cod sursa (job #596934) | Cod sursa (job #1836483) | Cod sursa (job #1812876) | Cod sursa (job #2007879) | Cod sursa (job #1794921)
#include <fstream>
#define MAX 1 << 31
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
unsigned int nrZero(unsigned int n)
{
if (n < 5)
return 0;
return n / 5 + nrZero(n / 5);
}
int CautareBinara(unsigned int n)
{
unsigned int st = 1, dr = MAX;
while (st < dr)
{
int mij = st + (dr - st) / 2;
unsigned int _nrZero = nrZero(mij);
if (_nrZero == n)
return mij;
else if (_nrZero > n)
dr = mij - 1;
else
st = mij + 1;
}
return -1;
}
int main()
{
unsigned int n;
f >> n;
int rez = CautareBinara(n);
while (rez % 5 != 0 && rez != 1 && rez != -1)
--rez;
g << rez;
return 0;
}