Cod sursa(job #399412)

Utilizator nandoLicker Nandor nando Data 20 februarie 2010 14:24:48
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>

using namespace std;

int nr5(int a){
	int k=0,p=5;
	for(int i=5;i<a;i*=5){
		k+=a/i;
	}
	return k;
}

int main(){
	fstream fin("fact.in",ios::in);
	fstream fout("fact.out",ios::out);
	unsigned beg=0,end=INT_MAX,mdl,p,res=-1;
	fin>>p;
	while(beg<=end){
		int mdl=beg+(end-beg)/2;
		int n5=nr5(mdl);
		if(n5<p){
			beg=mdl+1;
		}else if(n5>p){	
			end=mdl-1;
		}else{
			res=mdl;
			break;
		}
	}
	if(res!=-1){
		fout<<(res/5)*5;
	}else{
		fout<<-1;	
	}
	fin.close();
	fout.close();
	return 0;
}