Cod sursa(job #6050)

Utilizator iondionGeorge Pascu iondion Data 16 ianuarie 2007 21:50:46
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream.h>
#include <math.h>
ifstream fin( "fact.in" );
ofstream fout( "fact.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, log );
	fout << cauta( k, 5*k );	
	fout << "\n";
	return 0;
}