Cod sursa(job #521529)

Utilizator bogdan353Costea Bogdan bogdan353 Data 12 ianuarie 2011 19:24:51
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<iostream> 
#include<fstream> 
using namespace std; 
 
long p; 
 
int bins(long long st, long long dr) 
{ 
long long cp,m,s=0; 
   while(st<dr) 
   { 
	   s=0; 
	   m=(st+dr)/2; 
	   cp=m; 
	   while(cp!=0) 
	   {
		   s=s+cp/5; 
		   cp=cp/5;
	   } 
	   if(s==p)  return m; 
	   if(s>p) dr=m-1; 
	   else st=m+1; 
   } 
return 0; 
} 

 int main() 
{ 
ifstream f("fact.in"); 
ofstream g("fact.out"); 
f>>p; 

long long n,s,cop;

if(p==0)
	g<<1;
 
else 
	if(!bins(0 , 4000005015)) 
		cout<<-1; 

else
{ 
	n=bins(0 , 4000005015); 
	s=p; 
	while(s==p) 
	{ 
		s=0; 
		n--; 
		cop=n; 
		while(cop!=0) 
		{ 
			s=s+cop/5; 
			cop=cop/5; 
		} 
	} 
	g<<n+1; 
} 

}