Cod sursa(job #1526171)

Utilizator backtrackIconaru Marian Catalin backtrack Data 16 noiembrie 2015 00:03:06
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<iostream>
#include<fstream>

using namespace std;
int p;
int solutie(long long n){
	long long sum=0;
	for(int i=5;n/i>0;i*=5)
		sum+=n/i;
	if(sum==p)
		return 0;
	if(sum>p)
		return 1;
	return -1;
}
int main(){
	ifstream f("fact.in");
	f>>p;
	ofstream g("fact.out");
	long long solution=10*p;
	long long lower_bound=0;
	long long upper_bound=15*p;
	while(lower_bound<=upper_bound){
		long long mij=(lower_bound+upper_bound)/2;
		if(solutie(mij)==0)
			solution=min(solution,mij);
		if(solutie(mij)==1 || solutie(mij)==0)
			upper_bound=mij-1;
		if(solutie(mij)==-1)
			lower_bound=mij+1;
		
	}
		g<<solution;
		
		f.close();
		g.close();
		//system("pause");
	return 0;
}