Cod sursa(job #468324)

Utilizator andrei123Andrei Draga - UPB andrei123 Data 3 iulie 2010 06:35:19
Problema Factorial Scor 5
Compilator c Status done
Runda Arhiva de probleme Marime 2.16 kb
#include<stdio.h>
int main()
{
    // numar unde a trebui -1 si stabilesc formula in functie de alea
    int i,j,k,l,m,n,o,q,nr,inc=0;
    int p,expresie;
    FILE *f; FILE *g;
    f=fopen("fact.in","r");
    g=fopen("fact.out","w");
   fscanf(f,"%lu",&p);
   //     p=i;
        if(p>25)
    expresie=p*5 - (p/6)*5 - (p-25)/6*5; /// doar dak p>25
        else
            expresie=p*5 -p/6*5;
  //  fprintf(g,"p=%d\texpresie=%d\n",p,expresie);
    if(p==0)
    {
        fprintf(g,"%d\n",1);
    }
    if(p==5 || p==11 || p==17 || p==23 || p==29 || p==30 || p==36 || p==42 )
        fprintf(g,"%d\t%d\n",p,-1);
    else
        fprintf(g,"%d\t%d\n",p,expresie);

/*    if(1<=p && p<=4)
    {
       fprintf(g,"%d",5*p);
       exit 1;
    }
    if(p==5)
    {
        fprintf(g,"%d",-1);
        exit 1;
    }
    if(6<=p && p<=10)
    {
        fprintf(g,"%d",5*(p-1));
        exit 1;
    }
    if(p==11)
    {
        fprintf(g,"%d",-1);
        exit 1;
    } */




        /*
--------------REGULA-------------------
P   N             // numar zerouri, N-minim
0   1
1   5               N = P*5 - P/6*5 - (P-25)/6*5
2   10
3   15
4   20
5   -
6   25
7   30
8   35
9   40
10  45
11  -
12  50
13  55
14  60
15  65
16  70
17  -
18  75
19  80
20  85
21  90
22  95
23  -
24  100
25  105
26  110
27  115
28  120
29  -
30  -
31  125
32  130
33  135
34  140
35  145
36  -
37  150
38  155
39  160
40  165
41  170
42  -
43  175
44  18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044  18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044  18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044   18044  18044   18044   18044   180
           */
/*
        o=0;
        for(m=10 ; m<=5*p ; m+=5)
        {
            q=m;
            while(q%5==0 && q!=0 && q%25==0)
            {
                q/=5;
                o++;
            }
            printf("o=%d\n",o);
        }
        if(p==5)
            fprintf(g,"%d",-1);
        else
        {
            fprintf(g,"%lu",5*p-o);
            printf("\n%lu\n",5*p-(o-1)*5);
        }
    }
    */
return 0;
}