Cod sursa(job #758014)

Utilizator bora_marianBora marian bora_marian Data 14 iunie 2012 02:47:02
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<iostream>
#include<fstream>
using namespace std;
int p,n;
int verifica(int n);
void cauta(int st,int dr);
int main()
{
	ifstream fin("fact.in");
	ofstream fout("fact.out");
	fin>>p;
	if(p==0)
		fout<<"1";
	else
	{
		cauta(1,5*p);
		if(verifica(n)==p)
			fout<<n;
		else
			fout<<"-1";
	}
	return 0;
}
void cauta(int st,int dr)
{
	if(st==dr)
	{	
		n=st;
		return ;
	}
	int mij=(st+dr)/2;
	if(verifica(mij)<p)
		cauta(mij+1,dr);
	else
		cauta(st,mij);
}
int verifica(int n)
{
	int c=5;
	int s=0;
	while(n/c!=0)
	{
		s+=n/c;
		c=c*5;
	}
	return s;
}