Cod sursa(job #700766)

Utilizator ephgstefana gal ephg Data 1 martie 2012 11:51:29
Problema Factorial Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <cstdio>
int p5[50],a[50],dim;
int main () {
	int n,i,c=0,vc,uv,j;
	
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%d",&n);
	if(n==0){
		printf("1");
		return 0;
	}
	for(vc=5;vc<=100000000;vc*=5){
		p5[++dim]=vc;
	}
	a[1]=1;
	for(i=2;i<=dim;++i)a[i]=a[i-1]*5+1;
	for(i=1;p5[i]<=n;++i){}
	c=a[i-1];
	
	for(j=p5[i-1]+5;c<n;j+=5){
		uv=j;
		vc=1;
		for(;uv%p5[vc]==0;)++vc;
		--vc;
		c+=vc;
		
	}
	if(c==a[i-1]){
		printf("%d",p5[i-1]);
		return 0;
	}
	if(c!=n){
		printf("-1");
		return 0;
	}
	printf("%d",uv);
	return 0;
}