Pagini recente » Cod sursa (job #491514) | Cod sursa (job #1900476) | Cod sursa (job #276046) | CLASAMENTUL!! | Cod sursa (job #1724949)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int p;
int vf( int x )
{
int nr = 0;
for( int i = 5; i <= x; i = i*5 )
nr += x/i;
return nr;
}
int cbin( int stanga, int dreapta )
{
if( stanga == dreapta )
return stanga;
else
{
int mij = stanga + (dreapta - stanga)/2;
if( vf( mij ) > p )
return cbin( stanga, mij );
else
return cbin( mij + 1, dreapta );
}
}
int main()
{
in >> p;
if( p == 0 )
out << 1;
else{
int r = cbin( 1, p*5 );
if( vf(r) == p )
{
while( vf(r-1) == p )
r--;
out << r;
}
else if( vf(r) < p )
{
while( vf(r) < p )
r++;
if( vf(r) == p )
out << r;
else
out << -1;
}
else
{
while( vf(r) > p )
r --;
if( vf(r) == p )
{
while( vf( r-1) == p )
r--;
out << r;
}
else
out << -1;
}
}
return 0;
}