Cod sursa(job #544432)

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