Pagini recente » Cod sursa (job #1375189) | Cod sursa (job #1418569) | Cod sursa (job #2051730) | Cod sursa (job #866175) | Cod sursa (job #340403)
Cod sursa(job #340403)
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define MY_FILE_NAME "fact"
void read_data( int *n )
{
FILE *f = fopen( MY_FILE_NAME".in", "r" );
fscanf( f, "%i", n );
}
void write_response( long long response )
{
FILE *f = fopen( MY_FILE_NAME".out", "w" );
fprintf( f, "%lli", response );
#ifdef _MSC_VER
fprintf( stdout, "%lli\n", response );
#endif
}
void run();
int main()
{
#ifdef _MSC_VER
unsigned int start_tick = GetTickCount();
//time_t start_time = time( NULL );
#endif
run();
#ifdef _MSC_VER
//int secs = (int) (time( NULL ) - start_time);
//printf( "***** %i secs\n", secs );
int milis = GetTickCount() - start_tick;
printf( "***** %i milis\n", milis );
#endif
return 0;
}
void run()
{
int p = 0;
long long int k = 0;
long long int response = 0;
read_data( &p );
if ( 0 == p ) {
write_response( 1 );
return ;
}
k = 0;
response = -1;
for ( int i = 5; i <= 2000000000; i += 5 ) {
int c = 0;
for ( int j = i; 0 == j%5; j /= 5 )
c++;
k += c;
if ( p < k ) {
response = -1;
break ;
} else if ( p == k ) {
response = i;
break ;
}
}
write_response( response );
}