Cod sursa(job #362273)

Utilizator undogSavu Victor Gabriel undog Data 8 noiembrie 2009 19:08:24
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <cstdio>

long long nz( long c ){
     	long long p = 0;
     	while( c ){
   	        p += c/5;
        	c /= 5;
     	}
     	return p;
}

int main(){
	long n;
	long t,ct;
	long long i,r,l,m;
	
	freopen("fact.in","rt",stdin);
	freopen("fact.out","wt",stdout);
	
	scanf("%ld",&n);
	
	l=1;
	r=(long long)1000000000;
	
	while(l<r){
		m=(l+r)/2;
		ct=nz(m);
		if(n==ct){
			for(;m%5;m--);
			if(m==0)
				m++;
			printf("%lld",m);
			return 0;
		}
		else if(n>ct)
			l=m+1;
		else
			r=m;
	}
	
	printf("-1");
	return 0;
	
}