Cod sursa(job #829334)

Utilizator SadmannCornigeanu Calin Sadmann Data 5 decembrie 2012 02:08:06
Problema Factorial Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 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;
    }
    for(;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;
}