Cod sursa(job #988053)

Utilizator meehighStancu Mihai meehigh Data 21 august 2013 21:51:28
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <iostream>
#include <fstream>


using namespace std;

int main(){

	ifstream fin("fact.in");
	ofstream fout("fact.out");

	int p;
	fin >> p;
	fin.close();
	
	int pow[14];
	pow[0] = 1;
	for (int i=1; i<14; i++)
		pow[i] = pow[i-1] * 5; 

	int a,b,n,r,t,i;
	
	a = 1;
	b = 2147483647;
	
	while (a != b){
		n = (a+b)/2;

		r = 0;
		i = 1;
		do{
			t = n/pow[i++];
			r = r + t;
		} while (t>0);

		if (r==p) break;
		else if (r>p) b = n;
		else a = n+1;
	}

	fout << (r != p ? -1 : a);
	fout.close();

	return 0;
}