Cod sursa(job #6047)

Utilizator iondionGeorge Pascu iondion Data 16 ianuarie 2007 21:42:12
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream.h>
#include <math.h>
ifstream fin( "factorial.in" );
ofstream fout( "factorial.out" );

int p;

int numarDeZerouri( int n )
{
	int numar = 0;
	while( n )
	{
		numar += (n/5);
		n = (n/5);
	}

	return numar;
}

int cauta( int s, int d )
{
	int m = (s+d)/2;
	if( s == d )
		return s;
	else
	{
		int nrs = cauta( s, m );
		int nrd = cauta( m+1, d );
		return ( numarDeZerouri(nrs) == p ) ? nrs : nrd;
	}
}
int main()
{
	fin >> p;
	float log = (float)( log10(4*p + 1) / log10( 5 ) );
	int k = (int)pow( 5, (int)(log) );
	fout << cauta( k, 5*k );	
	fout << "\n";
	return 0;
}