Cod sursa(job #829333)

Utilizator SadmannCornigeanu Calin Sadmann Data 5 decembrie 2012 02:07:31
Problema Factorial Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 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)
	{
		aux=num+=25;
		nr5+=1<<2;
		if(nr5<p)
		{
			while(!(aux%25))
			{
				nr5+=1<<1;
				aux/=25;
			}
			if(!(aux%5))
				++nr5;
		}
		else
		{
			aux2=nr5-p+1;
			num-=(aux2<<2)+(aux2--);
			nr5-=aux2;
		}

	}
	if(nr5==p)
		fprintf(out,"%d",num);
	else
		fprintf(out,"-1");
 
 
 
    return 0;
}