Pagini recente » Cod sursa (job #1323843) | Cod sursa (job #1826544) | Cod sursa (job #1373790) | Cod sursa (job #2724943) | Cod sursa (job #1794917)
#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);
}
unsigned int CautareBinara(unsigned int n)
{
unsigned int st = 1, dr = MAX;
while (st < dr)
{
unsigned 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;
unsigned int rez = CautareBinara(n);
while (rez % 5 != 0 && rez != 1 && rez != -1)
--rez;
g << rez;
return 0;
}