Cod sursa(job #806291)

Utilizator valexVochescu Alexandru valex Data 2 noiembrie 2012 15:50:42
Problema Factorial Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <cstdio> 
using namespace std; 

long long fact(long long x) 
{ 
	int p=5,nr=0; 
	while (p<=x)    
	{ 
	nr=nr+x/p;        
	p=p*5; 
	} 
	return nr; 
} 

int main() 
{ 
	freopen("fact.in","r",stdin); 
	freopen("fact.out","w",stdout); 
	long long p,f,ls=0,ld=100000000,m; 
	scanf("%d",&p); 
	while (ls<=ld) 
	{ 
		m=(ls+ld)/2;    
		if (m<5) f=0;        
			else f=fact(m); 
		if (f<p) ls=m+1; 
			else ld=m-1;    
	}    
	if (fact(ls)==p) printf("%d",ls); 
	else printf("%d",-1); 
	return 0; 
}