Cod sursa(job #1438117)

Utilizator george.stefanGeorge Stefan george.stefan Data 19 mai 2015 00:39:00
Problema Factorial Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    /*
       (p-5)%6==0 => -1
       N=5^x=> p-i=-1 ptr i=1:x-1;
        in rest -> +5 in poz != -1

    */
    FILE *f=fopen("fact.in","rt");
    FILE *g=fopen("fact.out","wt");

    long *v;
    int nu[11]={5,25,125,625,3125,15625,78125 ,390625 ,1953125,9765625,48828125};
    long long i,p,j,k,m,suma=0;
    int nr;

   fscanf(f,"%lld",&p);

    v=calloc(11,sizeof(*v));

    for(i=0;i<11;i++)
        {
            v[i]=(nu[i]-1)/4;
            if(p>v[i])
                m=i;
            printf("%d ",m);
        }
    for(i=m;i>=0;i--)
    {
        nr=0;
        while(p>=v[i])
        {
            p-=v[i];
            nr++;
            suma+=nu[i];
        }
        if(nr==5)
        {
            printf("-1");
            return 0;
        }
    }
    printf("%d ",suma);



    return 0;
}