Cod sursa(job #1438025)

Utilizator george.stefanGeorge Stefan george.stefan Data 18 mai 2015 22:29:05
Problema Factorial Scor 15
Compilator c Status done
Runda Arhiva de probleme Marime 1.06 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[10]={25,125,625,3125,15625,78125 ,390625 ,1953125,9765625,48828125};
    long long i,p,j,k;
    ;

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

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

    for(i=0;i<10;i++)
        {
            v[(nu[i]-1)/4]=nu[i];

            for(k=1;k<=i+1;k++)
                v[(nu[i]-1)/4-1]=-1;
        }
    v[0]=1;
    v[1]=5;
    v[2]=10;
    v[3]=15;
    v[4]=20;
    v[5]=-1;
    j=25;
    int nr=0;
    for(i=6;i<p+1;i++)
    {
        if(nr!=5)
        {
            if(v[i]!=-1 )
            {
                v[i]+=j;
                j+=5;
                nr++;
            }
        }
        if(nr==5)
            {
                v[i+1]=-1;
                nr=0;
            }
    }
    fprintf(g,"%d",v[p]);
    printf("%d",v[p]);
    return 0;
}