Pagini recente » Cod sursa (job #1928402) | Cod sursa (job #2148060) | Cod sursa (job #1751964) | Cod sursa (job #630813) | Cod sursa (job #1405266)
#include <fstream>
using namespace std;
ifstream is("fact.in");
ofstream os("fact.out");
int p;
long long factorial(long long x);
int main()
{
is >> p;
long long lg;
for ( lg = 1; lg < 5 * p; lg <<= 1 );
long long pos = 0;
for ( long long byte = lg; byte; byte >>= 1 )
if ( byte + pos <= 5 * p && factorial(byte + pos) < p )
pos += byte;
if ( factorial(pos + 1) == p )
os << pos + 1;
else
os << -1;
is.close();
os.close();
return 0;
}
long long factorial(long long x)
{
long long rez = 0;
for ( int i = 5; i <= x; i *= 5 )
rez += x / i;
return rez;
}