Cod sursa(job #525314)

Utilizator SadmannCornigeanu Calin Sadmann Data 24 ianuarie 2011 20:00:56
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<stdio.h>
FILE *in,*out;
int nr0,p;
int num,aux,aux2;
int main()
{
	in=fopen("fact.in","rt");
	out=fopen("fact.out","wt");
	fscanf(in,"%d",&p);
	
	if(p>0)
	{
		while(nr0<p)
		{
			num+=25;
			nr0+=4;
			aux=num;
			if(nr0<p)
			{
				while(aux%125==0)
				{
					nr0+=3;
					aux/=125;
				}
				while(aux%25==0)
				{
					nr0+=2;
					aux/=25;
				}
				while(aux%5==0)
				{
					nr0++;
					aux/=5;
				}
			}
			else
			{
				aux2=nr0-p+1;
				num-=5*aux2;
				nr0-=aux2-1;
			}
			
		}
		if(nr0==p)
			fprintf(out,"%d",num);
		else
			fprintf(out,"-1");
	}
	else
		fprintf(out,"1");
		
	return 0;
}