Cod sursa(job #33193)

Utilizator MirageRobert Sandu Mirage Data 18 martie 2007 23:21:38
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
int main () {
	int k,i,nr0=1,c1,c2;
	FILE *in=fopen("fact.in","r"), *out=fopen("fact.out","w");
	fscanf(in,"%d",&k);
	if(k<0){
		fprintf(out,"-1\n");
		return 0;
	}
	if(k==0){
		fprintf(out,"1\n");
		return 0;
	}
	for(i=5;nr0<=k;i*=5)
		nr0+=(nr0*5);
	if(nr0==k){
		fprintf(out,"%d\n",i/5);
		return 0;
	}
	c1=i/25+5;
	nr0=nr0-c1-5;
	while(nr0<k){
		c2=c1;
		while(c2%5==0){
			nr0++;
			c2/=5;
		}
		c1+=5;
	}
	if(nr0==k)
		fprintf(out,"%d\n",c1-5);
	else
		fprintf(out,"-1\n");
	fclose(in);
	fclose(out);
	return 0;
}