Cod sursa(job #475652)

Utilizator olly2204Olly2204 olly2204 Data 7 august 2010 20:28:48
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <iostream>
#include <stdio.h>

using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");

int main()
{

	unsigned long p, st, dr, mid,y,k;

	int c = 1;

	f >> p;
		
	st = 1;
	dr = 1;

	for (int j = 1 ; j <= p ; j++)

	{
		dr *= 5 ;

	}


	if ( p == 0 ) {
		g << 1;
	}

	else 

	{


	while (st <= dr) {

		mid = (st+dr) / 2; 

		y = 0;

		for (int i = 5 ; ( (i<= mid) && ( y <= p ) ) ; i+=5 ) {

			k = i;

			while (k % 5 == 0 ) {
				y++;
				k = k / 5;
			}

		}

		
		if (y==p) { 

			int e = 1;

			while (e == 1) {
				if ( mid % 5 == 0 ) { 
					g << mid;
					e = 0;
					c = 0;
				}
				else 
				{
					mid--;
				}

			}
			
			if  (e == 0 ) { break; }
		}
		else if (y > p ) {
			dr = mid - 1; }
		else {
			st = mid + 1;
		}

	}

	}

	if ( c == 1 ) {
		g << "-1";
	}

	f.close();
	g.close();

		


	return 0;
}