Pagini recente » Cod sursa (job #153803) | Cod sursa (job #2469032) | Cod sursa (job #1126936) | Cod sursa (job #3189791) | Cod sursa (job #1399189)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int src,Left,Right,Middle,nrCurZero,lastMiddle;
int _NrZero(int x)
{
int s = 0;
while( x != 0 )
{
s += x / 5;
x /= 5;
}
return s;
}
int main()
{
fin>>src;
if( src == 0 )
{
fout<<1;
return 0;
}
Left = 1;
Right = 500000000;
while( Left <= Right )
{
Middle = ( Left + Right ) / 2;
nrCurZero = _NrZero( Middle );
while( nrCurZero == 0 )
{
--Middle;
nrCurZero = _NrZero( Middle );
}
if( nrCurZero == src )
{
fout<<Middle;
return 0;
}
if( lastMiddle == Middle )
break;
if( nrCurZero > src )
Right = Middle;
else
Left = Middle;
lastMiddle = Middle;
}
fout<<-1;
return 0;
}