Pagini recente » Cod sursa (job #912212) | Cod sursa (job #2659235) | Cod sursa (job #1096342) | Cod sursa (job #2420958) | Cod sursa (job #645635)
Cod sursa(job #645635)
#include <fstream>
#include <math.h>
using namespace std;
int solve( int p ) {
int i;
int power;
int times;
int inverseP = 0;
if( p == 0 ) return 1;
if( p == 1 ) return 5;
int aprox = ( 5 * p );
int maxPower = (int)( floor( logf( (float)aprox ) / logf( 5.0f ) ) );
for( i = maxPower; i > 1; --i ) {
power = (int)( pow( 5.0f, i ) );
times = aprox / power;
if( aprox < times * ( power + 5 ) ) --times;
aprox -= times * 5;
inverseP += times;
}
if( aprox / 5 + inverseP > p ) return - 1;
return aprox;
}
int main() {
int p;
fstream f( "fact.in", ios::in );
f >> p;
fstream g( "fact.out", ios::out );
g << solve( p );
return 0;
}